Базовое утверждение данных с предложением «IN» в iOS 3.0 - PullRequest
0 голосов
/ 03 января 2011

Короче говоря: приложение iPhone падает при попытке получить набор данных, используя группу идентификаторов. У меня есть набор записей, привязанных к пользователю, посмотрите все записи, где recordID соответствует любому запись из user.recordIDs, вылетает с ошибкой:

unimplemented SQL generation for predicate : (recordID IN {name (user.record.recordID) by user (userID) ...)

Я открою, говоря, Да, я уже нашел это: http://cubic -m.blogspot.com / 2010/03 / support-leopard-while-развивающихся-in.html (iOS 3.0 SQL не поддерживает предложения «IN» с использованием NSSets, должен использовать NSArrays).

Предикат в форме: (recordID IN %@.recordID) где "% @" - user.records (набор или массив, основанный на статье выше).

Это хорошо, и, похоже, исправило большинство сбоев моего приложения - однако исправляет только сбои для 3.x> 3.0. То есть, это все еще не решает проблему на прошивке 3.0. Если у кого-то есть какие-либо предложения относительно нюансов базовых данных на ранней стадии, помогите!

1 Ответ

2 голосов
/ 12 января 2011

Не уверен, что именно здесь была проблема, но исправление было таким:

Если мы работаем с iOS 3, создайте NSArray со всеми ключевыми объектами, которые я искал (здесь, recordIDs),и передайте это [NSPredicate predicateWithFormat:@"recordID IN %@", recordIDs] вместо использования [@"recordID in %@.recordID", records]

Опять же, не уверены, в чем была реальная проблема, но этот обходной путь исправил ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...