Форум программистов, компьютерный форум CyberForum.ru

Предикат в NSFetchRequest - Swift

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Swift Восклицательный знак в Swift http://www.cyberforum.ru/swift/thread1246727.html
Всем привет! Начал опыты со Swift, и тут же столкнулся с модификаторами ? и ! (назову их так) при декларации переменных. С вопросительным знаком понятно - мы указываем, что переменная может или иметь конкретное значение, или быть nil'ом. А, вот, с восклицательным я запутался.. Читаю и stackoverflow и доки Apple, но, видимо, мой уровень знания английского не дает уловить суть. Что, в...
Swift Необходимость Swift для не очень опытного разработчика Всем привет! Возможно, мой вопрос покажется надуманным, но меня это постоянно пилит, хочу спросить совета: В iOS разработке я всего год, в связи с чем, очевидно, у меня пока куча дырок в знаниях - в той же CoreData, паттернах, и т.д. На текущем рабочем месте в ближайшие полгода как минимум, проектов на Swift не будет, поэтому учить его придется в нерабочее время. И у меня возникает... http://www.cyberforum.ru/swift/thread1244535.html
При нажатии на кнопку приложение вылетает Swift
Только начинаю изучать swift и возникла такая проблема: пишу простенькое приложение, на экране три кнопки 1, 2 и 3 при нажатии на кнопку, должен распечатываться ее номер, когда запускаю приложение и нажимаю на кнопку, то все зависает, в консоли :" ... libc++abi.dylib: terminating with uncaught exception of type NSException Такая проблема возникает постоянно :( *
Как установить swift на windows 8? Swift
Всем привет, подскажите пожалуйста, как установить swift. ОС виндовс 8. Очень нужно )
Swift Ошибка Expected declaration http://www.cyberforum.ru/swift/thread1216634.html
Создал обычный проект Single View Application в xcode на Swift. В ViewController.swift начинаю писать обычный код: var text = "Hello, everybody!" for symbol in text { } И на строке "for symbol in text{" у меня выходит ошика Expected declaration. При этом в playground при таком же коде ничего нет. Из-за чего эта ошибка? Мне больше всего не нравится то, что она критическая, и приложение не...
Swift Нужна задержка между выполнениями действий Здравствуйте. Подскажите, как сделать, чтобы текст выводился с задеркой (например в одну секунду). Например: println("Ла-ла-ла") //А тут задержка в 1 секунду. println("Бла-бла-бла") На самом деле код нечно по другому будет выглядеть (не в консоле будет вывод). Но мне надо, чтобы вывелся "Ла-ла-ла" и через секунду "Бла-бла-бла". Заранее спасибо! подробнее

Показать сообщение отдельно
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225

Предикат в NSFetchRequest - Swift

12.09.2014, 15:19. Просмотров 1556. Ответов 1
Метки (Все метки)

Всем привет!

По рекомендации форумчан делаю для себя тренировочный проект на Swift, пытаясь интегрировать туда максимум разноплановых вещей, и, вот, застрял на одном моменте связанном с CoreData:

Задача - сделать выборку сущностей из базы, в которых определенное строковое поле равно одному из перечисленных значений.

Сделал общий тест функционала с хардкорным кол-вом возможных вариантом, среди которых надо выбирать. Так работает:
Objective-C
1
fetchRequest.predicate = NSPredicate(format: "type MATCHES '.*(%@ | %@).*'", argumentArray: ["Opera", "Ballet"])
Но есть необходимость сделать кол-во аргументов для сравнения переменным. Чтобы мы могли передать в метод массив со строковыми значениями, и использовать его для сравнения.

Сделал так:
Objective-C
1
2
fetchRequest.predicate = NSPredicate(format: "type IN %@", argumentArray: typesArray)
let fetchedObjects = managedObjectContext!.executeFetchRequest(fetchRequest, error: &error)
Но тут валится эксепшн на второй строке с текстом
Objective-C
1
-[Swift._NSContiguousString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x78ff0a20
Пока не могу понять, как правильно организовать этот процесс..
Буду рад советам!

Добавлено через 33 минуты
Спустя некоторое время удалось сделать таким образом:
Objective-C
1
2
3
4
5
6
7
var predArray : Array<NSPredicate> = []
        
        for typeStr : String in typesArray {
            predArray.append(NSPredicate(format: "type LIKE %@", typeStr))
        }
       ...
        fetchRequest.predicate = NSCompoundPredicate(type: NSCompoundPredicateType.AndPredicateType, subpredicates: predArray)
Не знаю, правда, насколько это оптимальное решение.. Кажется, что не очень.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru