我正在我的iOS项目中实现CallKit,我使用了CallDirectory扩展来阻止和识别号码,阻止部分工作得很完美,唯一的问题是当我尝试添加要识别的号码时:
private func retrievePhoneNumbersToIdentifyAndLabels() -> (phoneNumbers: [String], labels: [String])? {
// retrieve list of phone numbers to identify, and their labels
interDefaults?.synchronize()
if let numbers = interDefaults!.string(forKey: "ident-numbers"){
if let identities = interDefaults!.string(forKey: "ident-identities"){
let formattedNumbers = numbers.characters.split{$0 == "*"}.map(String.init)
let formattedIdent = identities.characters.split{$0 == "*"}.map(String.init)
return (formattedNumbers, formattedIdent)
}
}
return ([""], [""])
}
当我尝试重新载入扩展时,出现错误:
Error Domain=com.apple.CallKit.error.calldirectorymanager Code=3 "(null)"
。经过一些测试,我发现通过将
formattedIdent
替换为只包含一个元素的数组(例如:["Spamm Caller"]
),扩展可以完美地运行且不出现任何错误。但当我使用包含多个元素的数组时,仍然会出现相同的错误。我是否做错了什么?提前感谢您的帮助。