【问题标题】:NSInvalidArgumentException', reason: 'Unable to parse the format string "userName like %@ password like %@"'NSInvalidArgumentException',原因:'无法解析格式字符串“userName like %@ password like %@”'
【发布时间】:2015-02-16 23:32:06
【问题描述】:

标题

我正在尝试从 sql 文件中获取数据,但我不断收到 NSInvalidArgumentException。 如果有人能帮我弄清楚,我将不胜感激。

- (IBAction)signIn:(id)sender {
    //Creating a fetch request
    AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
    //Create NSManagedObjectContext instance
    NSManagedObjectContext *context = [appDelegate managedObjectContext];
    NSEntityDescription  *entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:context];
    NSFetchRequest *request = [[NSFetchRequest alloc]init];
    [request setEntity:entity];
    NSPredicate *predicate= [NSPredicate predicateWithFormat:@"userName like %@ password like %@",self.username_signin.text, self.password_signin.text];
    [request setPredicate:predicate];
    NSError *error;

}

【问题讨论】:

  • 您应该在问题中显示完整的异常消息和堆栈跟踪。
  • 另请注意,密码不应存储在核心数据中,因为它通常不安全

标签: ios core-data nspredicate


【解决方案1】:

格式错误,因为它有两部分,但你没有说它们应该如何组合。它应该是这样的:

userName like %@ AND password like %@

此外,您很可能应该使用 = 而不是 like,因为您想要完全匹配而不是正则表达式类型匹配...

【讨论】:

  • 谢谢大家。它有帮助
【解决方案2】:

我不确定。

这一行

NSPredicate *predicate= [NSPredicate predicateWithFormat:@"userName like %@ password like %@",self.username_signin.text, self.password_signin.text];

改变

NSPredicate *predicate= [NSPredicate predicateWithFormat:@"userName like %@ && password like %@",self.username_signin.text, self.password_signin.text];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    相关资源
    最近更新 更多