NSPredicate 在 swift 4 时崩溃
NSPredicate crash in swift 4
我从字符串数组中搜索字符串,并且该代码在 swift 3 中正常工作,但是在转换 swift 4 之后,我开始搜索时遇到以下错误。
invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution.
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do a substring operation with something that isn't a string (lhs = "A" rhs = N)'
这是我的代码
let predicate = NSPredicate(format: "SELF BEGINSWITH[cd] %@", searchText)
let arrSearchData = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))
终于找到解决办法了,问题出在这一行
let arrSearchData = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))
它变成了字符数组而不是字符串数组,所以我link这样做,问题就解决了
let arrSearchData : [String] = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))
我从字符串数组中搜索字符串,并且该代码在 swift 3 中正常工作,但是在转换 swift 4 之后,我开始搜索时遇到以下错误。
invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution.
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do a substring operation with something that isn't a string (lhs = "A" rhs = N)'
这是我的代码
let predicate = NSPredicate(format: "SELF BEGINSWITH[cd] %@", searchText)
let arrSearchData = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))
终于找到解决办法了,问题出在这一行
let arrSearchData = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))
它变成了字符数组而不是字符串数组,所以我link这样做,问题就解决了
let arrSearchData : [String] = NSMutableArray(array: arrHomeTownData.filtered(using: predicate))