Tea*_*App 4 objective-c nspredicate ios
我已经解决了我的问题[盲目]而没有理解根本原因.但我宁愿理解专业人士的概念.那么请你告诉我为什么下面相同的代码有效,但另一个没有.
代码1:不起作用
//Above code omitted...
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"gender == m"]; //NOTICE HERE
[request setPredicate:predicate];
NSError *error = nil;
self.people = [self.managedObjectContext executeFetchRequest:request error:&error];
//Below code omitted...
Run Code Online (Sandbox Code Playgroud)
代码2:工作
//Above code omitted...
NSString *type = @"m";
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"gender == %@",type]; //NOTICE HERE
[request setPredicate:predicate];
NSError *error = nil;
self.people = [self.managedObjectContext executeFetchRequest:request error:&error];
//Below code omitted...
Run Code Online (Sandbox Code Playgroud)
self.people = [self.managedObjectContext executeFetchRequest:request error:&error];
Run Code Online (Sandbox Code Playgroud)
还有一件事,在GCC错误中,由于"gender == m",它无法格式化谓词.
谢谢
jrt*_*ton 10
请参阅谓词编程指南(标题为"文字").您可以在字符串中使用文字,但必须将它们用引号括起来,所以
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"gender == 'm'"];
Run Code Online (Sandbox Code Playgroud)
会有效的.当predicateWithFormat在参数中添加时,它知道它是一个字符串.当你只是有米在那里,不知道该怎么做了,因此错误.
| 归档时间: |
|
| 查看次数: |
1678 次 |
| 最近记录: |