Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Swift Восклицательный знак в Swift http://www.cyberforum.ru/swift/thread1246727.html
Всем привет! Начал опыты со Swift, и тут же столкнулся с модификаторами ? и ! (назову их так) при декларации переменных. С вопросительным знаком понятно - мы указываем, что переменная может или...
Swift Необходимость Swift для не очень опытного разработчика Всем привет! Возможно, мой вопрос покажется надуманным, но меня это постоянно пилит, хочу спросить совета: В iOS разработке я всего год, в связи с чем, очевидно, у меня пока куча дырок в знаниях... http://www.cyberforum.ru/swift/thread1244535.html
При нажатии на кнопку приложение вылетает Swift
Только начинаю изучать swift и возникла такая проблема: пишу простенькое приложение, на экране три кнопки 1, 2 и 3 при нажатии на кнопку, должен распечатываться ее номер, когда запускаю приложение и...
Как установить 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...
Swift Нужна задержка между выполнениями действий Здравствуйте. Подскажите, как сделать, чтобы текст выводился с задеркой (например в одну секунду). Например: println("Ла-ла-ла") //А тут задержка в 1 секунду. println("Бла-бла-бла") На самом... подробнее

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

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

12.09.2014, 15:19. Просмотров 1671. Ответов 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)
Не знаю, правда, насколько это оптимальное решение.. Кажется, что не очень.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru