6

personID を含む一連の文字列があり、一意の strPersonID を持つ people managedObject の NSFetchedResults があります。NSPredicate を作成しようとしましたが、失敗します。これについての助けをいただければ幸いです。私はNSPredicateに少し慣れていないので、親切にしてください。

NSSet *zipSet = [NSSet setWithSet:[self getziplist:searchText]];
searchString = [NSString stringWithFormat:@"(strPersonID IN %@)",zipSet];
NSPredicate *searchPersonPredicate = [NSPredicate predicateWithFormat:searchString];

ランタイム エラー メッセージは次のとおりです: キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。

4

1 に答える 1

7

文字列に補間するのではなくzipSet、述語に補間します。

NSSet *zipSet = [NSSet setWithSet:[self getziplist:searchText]];
NSPredicate *searchPersonPredicate = [NSPredicate predicateWithFormat:@"strPersonID IN %@",zipSet];

NSSetを文字列に補間すると、正しい形式になりません(NSStringは-description、古いNextStepプロパティリスト形式を使用するを使用します)。

于 2010-12-11T18:02:33.093 に答える