Objective c NSPredicate-无法为谓词生成SQL,我想知道为什么?
我已经[盲目地]解决了我的问题,却不了解根本原因。但我更愿意从专业人士那里理解一个概念。所以,你能告诉我为什么在相同的代码下,一个可以工作,而另一个不能 代码1:不起作用Objective c NSPredicate-无法为谓词生成SQL,我想知道为什么?,objective-c,ios,nspredicate,Objective C,Ios,Nspredicate,我已经[盲目地]解决了我的问题,却不了解根本原因。但我更愿意从专业人士那里理解一个概念。所以,你能告诉我为什么在相同的代码下,一个可以工作,而另一个不能 代码1:不起作用 //Above code omitted... NSPredicate * predicate = [NSPredicate predicateWithFormat:@"gender == m"]; //NOTICE HERE [request setPredicate:predicate]; NSError *err
//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...
//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...
代码2:是否有效
//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...
//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...
当我执行代码1时,忘记告诉我得到了什么错误,我在下面一行得到了SIGABRT
self.people = [self.managedObjectContext executeFetchRequest:request error:&error];
还有一件事,在GCC错误中,它不能格式化谓词,因为“gender==m”
开导我 谢谢请参阅(标题“文字”)。您可以在字符串中使用文字,但必须将它们括在引号中,因此
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"gender == 'm'"];
那就行了。当predicateWithFormat添加到参数中时,它知道它是一个字符串。当你只有m在那里时,它不知道如何处理它,因此产生了错误
使用swift的示例
你能把你的标题编辑得更清楚一点吗?这可能有助于得到更多的答案:-)@kalaracey,这个怎么样?太好了!谢谢。我应该在阅读文档时更加集中精力:(哈哈