我有2个实体使用Nsstrings作为唯一属性.
创建比较Nsstrings的谓词的正确方法是什么?
目前我有:
[nspredicate predicateWithFormat:@“unique =%@”,uniqueValue];
我有一种感觉,这比较指针地址,而不是实际的字符串值,但我不能确认.我需要返回yes以进行精确的字符串匹配.
-(BOol)uniqueEntityExistsWithEnityname:(Nsstring*)entityname UniqueKey:(Nsstring*) uniqueKey UniqueValue:(Nsstring*)uniqueValue SortAttribute:(Nsstring*)sortDescriptorAttribute ManagedobjectContext:(NSManagedobjectContext*) context;{ BOol returnValue = NO; NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityname:entityname];//what is the correct predates to compare the text an string core data property against a passed in string? request.predicate = [nspredicate predicateWithFormat:@"unique= %@",uniqueValue]; NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:sortDescriptorAttribute ascending:YES]; request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; NSError *error = nil; NSArray *matches = [context executeFetchRequest:request error:&error]; if (!matches) { NSLog(@"Error: no object matches"); } else if([matches count] > 1) { NSLog(@"Error: More than one object for unique record"); returnValue = YES; } else if ([matches count] == 0) { returnValue = NO; } else { returnValue = YES; } return returnValue;}解决方法 在编码方面,单个等号甚至不是比较器.
我将假设unique是一个NSManagedobject属性.
[nspredicate predicateWithFormat:@"unique liKE %@",uniqueValue];
请注意,这是区分大小写的.如果你想让它变得不敏感,那么你可以在liKE之后放[c].
总结以上是内存溢出为你收集整理的objective-c – iOS核心数据如何使用谓词正确比较字符串文本?全部内容,希望文章能够帮你解决objective-c – iOS核心数据如何使用谓词正确比较字符串文本?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)