【问题标题】:NSPredicate crash in swift 4NSPredicate 在 swift 4 中崩溃
【发布时间】:2018-01-09 10:52:43
【问题描述】:

我从字符串数组中搜索字符串,该代码在 swift 3 中正常工作,但在转换 swift 4 后,当我开始搜索时出现以下错误。

提供给 CFRunLoopRunSpecific 的无效模式“kCFRunLoopCommonModes” - 中断 _CFRunLoopError_RunCalledWithInvalidMode 以进行调试。此消息每次执行只会出现一次。

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法对不是字符串的内容执行子字符串操作 (lhs = "A" rhs = N)”

这是我的代码

let predicate = NSPredicate(format: "SELF BEGINSWITH[cd] %@", searchText)
let arrSearchData = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))

【问题讨论】:

  • arrHomeTownData的数据类型是什么?
  • @CRDave 它是 NSMutableArray
  • NSMutableArray 是什么?
  • @CRDave NSMutableArray of string
  • 你能提供一部分 arrHomeTownData 日志吗?

标签: ios nspredicate swift4


【解决方案1】:

终于找到了解决办法,问题出在这一行

let arrSearchData = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))

它变成了字符数组而不是字符串数组,所以我把它链接起来并解决问题

let arrSearchData : [String] = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多