代码之家  ›  专栏  ›  技术社区  ›  user3069232

NSPredicate在swift中表示空字符串

  •  0
  • user3069232  · 技术社区  · 6 年前

    正在尝试读取iCloud数据库中设置了lineOwner字段的记录,但正在努力创建一个有效的Npredicate!

    let predicate = NSPredicate(format: remoteAttributes.lineOwner + " != %@",0)
    

    我收到了一条无效的谓词错误消息[和一次严重的交易崩溃]。在这上面花上几个小时就会失去生存的意志。

    如果我把数据库打印出来,我会看到这个。

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  2
  •   Dávid Pásztor    6 年前

    你可以把它比作空的 String "" . 这个 %@ 字符串 ,所以崩溃的发生是因为你提供了 Int NSPredicate 字符串

    你也应该使用 %K 变量名的占位符,而不是附加字符串。

    let predicate = NSPredicate(format: " %K != %@", remoteAttributes.lineOwner, "")
    

    nil

    let predicate = NSPredicate(format: " %K != %@ AND %K != nil", remoteAttributes.lineOwner, "")