2015-11-04 36 views
0

我正在尝试编写NSPredicate来提取用户ID和claimID,我得到下面的错误。'无法解析格式字符串'claimID!=''&userID =%@“'

Terminating app due to uncaught exception NSInvalidArgumentException', reason: 'Unable to parse the format string "claimID != '' & userID = %@"'

我的代码是 -

+(NSArray*)fetchNotificationsWithPredicate { 
    NSPredicate *predicate=[NSPredicate predicateWithFormat:@"claimID != '' & userID = %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"usernmae"]]; 
    NSLog(@"%@",[self fetchNotifications]); 
    NSArray *loginUsers = [DBUtils createAndExecuteFetchRequestWithPredicate:@"Notification" predicate:predicate]; 
    return loginUsers; 
} 

回答

0

望着predicate string format,它看起来像&不是一个有效的操作。你要么AND&&。所以:。

@"claimID != '' && userID = %@" 

@"claimID != '' AND userID = %@" 

(这很可能不是唯一问题我从来没有用过这个API,和我不是一个iOS开发者这是刚刚从文档的检查......)

+0

检查...什么革命性的新概念!这永远不会流行。 – gnasher729

0

重写你的断言:

NSPredicate *predicate=[NSPredicate predicateWithFormat:@"claimID != '' AND userID MATCHES %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"usernmae"]]; 

注:的号码相匹配使用“=”和字符串匹配使用“MATCHES”的文件

+0

您好Jamil感谢您的回答,但现在我得到一个新的错误,即终止应用程序,由于未捕获异常'NSInvalidArgumentException',原因:'无效谓词:无RHS' –

+0

检查其值为零 – Jamil

+0

[[NSUserDefaults standardUserDefaults] objectForKey :@“usernmae”] – Jamil