LHS和RHS都是关键路径

Bob*_*ryn 1 core-data nsfetchedresultscontroller ios7

试图找到匹配所有搜索查询的活动guestCards位置prospectiveTenant.可能性是firstName,lastName,phoneNumber.

prospectiveTenants对很多人来说guestCard.

这段代码:

NSString *predicateString = [NSString stringWithFormat: @"active=1"];
if (self.searchHeader.firstNameTextField.text.length > 0) {
    predicateString = [predicateString stringByAppendingFormat:@" AND (ANY prospectiveTenants.firstName CONTAINS[cd] %@)", self.searchHeader.firstNameTextField.text];
}
if (self.searchHeader.lastNameTextField.text.length > 0)
{
    predicateString = [predicateString stringByAppendingFormat:@" AND (ANY prospectiveTenants.lastName CONTAINS[cd] %@)", self.searchHeader.lastNameTextField.text];
}
if (self.searchHeader.phoneNumberTextField.text.length > 0)
{
    predicateString = [predicateString stringByAppendingFormat:@" AND (ANY prospectiveTenants.phone CONTAINS[cd] %@)", self.searchHeader.phoneNumberTextField.text];
}

NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateString];
[self.fetchedResultsController.fetchRequest setPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

产生这个错误

'unimplemented SQL generation for predicate : (ANY prospectiveTenants.lastName CONTAINS[cd] S) (LHS and RHS both keypaths)'
Run Code Online (Sandbox Code Playgroud)

Bob*_*ryn 7

嘎.

所以看起来predicateWithFormat特别的工作是确保在字符串周围插入引号.应该是显而易见的.

  • 谢谢,所以解决方法是将%@更改为\"%@ \" (2认同)