在SWIFT中从iPhone获取联系号码时,应用程序崩溃
我正在尝试使用以下代码获取联系人:
var addressBook: ABAddressBook! let addressBookRef: ABAddressBook = ABAddressBookCreateWithOptions(nil, nil).takeRetainedValue() var arrContacts = [""] var personNameContactNo:[String: String] = ["":""] var arrOfDictContacts = NSMutableArray() var Name: String! if let people = ABAddressBookCopyArrayOfAllPeople(addressBook)?.takeRetainedValue() as? NSArray { for person in people{ if let name = ABRecordCopyValue(person, kABPersonFirstNameProperty).takeRetainedValue() as? String { Name = name } let numbers:ABMultiValue = ABRecordCopyValue( person, kABPersonPhoneProperty).takeRetainedValue() var number = ABMultiValueCopyValueAtIndex(numbers,0).takeRetainedValue() as! String println("number = \(number)") if(number.isEmpty) { println("empty") } else { personNameContactNo.removeAll(keepCapacity: true) personNameContactNo.updateValue(number, forKey:Name) arrOfDictContacts.addObject(personNameContactNo) } println(personNameContactNo) } println(arrOfDictContacts) } what am expecting is: ["Arun":"123455"], ["John":"23456122"], etc...
它在模拟器中运行良好,但不在设备上运行。 也许这是由于一些零价值。 该应用程序崩溃与以下味精: fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)
尝试; 这应该可以解决你的问题。
var addressBookRef: ABAddressBookRef = ABAddressBookCreateWithOptions(nil, nil).takeRetainedValue() var arrOfDictContacts:NSMutableArray = NSMutableArray() let people:NSArray = ABAddressBookCopyArrayOfAllPeople(addressBookRef).takeRetainedValue(); for person in people{ if let name:String = ABRecordCopyValue(person, kABPersonFirstNameProperty)?.takeRetainedValue() as? String { let numbers:ABMultiValue = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue() // if (ABMultiValueGetCount(numbers) > 0) { //This condition is optional because using '?' before calling takeRetainedValue if let number:String = ABMultiValueCopyValueAtIndex(numbers,0)?.takeRetainedValue() as? String { println("number = \(number)"); arrOfDictContacts.addObject(["\(name)":"\(number)"]); } // } } } //-- println(arrOfDictContacts);
- 如何请求权限再次访问iphone联系人地址簿?
- ABRecordCopyValue返回0?
- 检测从ABAddressBookRegisterExternalChangeCallback中更改的内容
- 在iOS 6模拟器中的ABAddresBook权限
- iOS – 如何使用ABSourceType |search“可search的”ABSource kABSourceTypeSearchableMask
- 在联系页面中添加地址簿
- 如何从ABRecordID获取ABRecordRef?
- IOS地址簿不是从联系人列表中获取所有的电话号码
- 在ABPeoplePickerNavigationController中自定义表格单元格