Ios 致命错误:在展开可选值时意外发现nil,加载时崩溃电话联系人
致命错误:在展开可选值时意外发现nil Swift的函数签名专用化。(\u fatalErrorMessage(Swift.StaticString, Swift.StaticString,Swift.StaticString,Swift.UInt)->()(闭包) #(二) 我的代码是:Ios 致命错误:在展开可选值时意外发现nil,加载时崩溃电话联系人,ios,xcode,swift,addressbook,Ios,Xcode,Swift,Addressbook,致命错误:在展开可选值时意外发现nil Swift的函数签名专用化。(\u fatalErrorMessage(Swift.StaticString, Swift.StaticString,Swift.StaticString,Swift.UInt)->()(闭包) #(二) 我的代码是: addressBook.fieldsMask = APContactField.Default addressBook.sortDescriptors = [NSSortDescriptor(
addressBook.fieldsMask = APContactField.Default
addressBook.sortDescriptors = [NSSortDescriptor(key: "name.firstName", ascending: true)]
addressBook.filterBlock = {(contact: APContact!) -> Bool in
print(contact.phones)
return contact.phones!.count > 0
}
addressBook.loadContacts({ (contacts: [APContact]?, error: NSError?) in
if (contacts != nil) {
self.allContacts.removeAll(keepCapacity: false)
self.tableView.tableHeaderView = self.resultSearchController.searchBar
let newContacts = contacts as [APContact]!
//Validate Phone Number
newContacts.map({ (contact: APContact) -> Void in
if self.isValidNumberContact(contact) {
self.allContacts.append(contact)
print(self.allContacts)
}
})
self.callContactsWebservice(WithPhoneNumbers: self.allContacts)
completion(contactsFound: true)
} else {
completion(contactsFound: false)
}
})
case .Denied:
showPermisisonDeniedAlert()
default:
print("", terminator: "")
}
使用guard确保该值不为零:
addressBook.fieldsMask = APContactField.Default
addressBook.sortDescriptors = [NSSortDescriptor(key: "name.firstName", ascending: true)]
addressBook.filterBlock = {(contact: APContact!) -> Bool in
print(contact.phones)
guard let phones = contact.phones else {
return
}
return phones.count > 0
}
addressBook.loadContacts({ (contacts: [APContact]?, error: NSError?) in
guard let phones = contacts as? [APContact] else {
completion(contactsFound: false)
return
}
self.allContacts.removeAll(keepCapacity: false)
self.tableView.tableHeaderView = self.resultSearchController.searchBar
let newContacts = contacts as [APContact]!
//Validate Phone Number
newContacts.map({ (contact: APContact) -> Void in
if self.isValidNumberContact(contact) {
self.allContacts.append(contact)
print(self.allContacts)
}
})
self.callContactsWebservice(WithPhoneNumbers: self.allContacts)
completion(contactsFound: true)
})
case .Denied:
showPermisisonDeniedAlert()
default:
print("", terminator: "")
}
可能重复的