Ошибка приложения при получении контактов с iPhone в SWIFT

Я пытаюсь получить контакты, используя следующий код:

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... 

Он хорошо работает в симуляторе, но не на устройстве. возможно, это связано с некоторым значением nil. Приложение вылетает со следующим сообщением msg: fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)

Сбой изображения

One Solution collect form web for “Ошибка приложения при получении контактов с iPhone в SWIFT”

Пытаться; это должно решить вашу проблему.

 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); 
  • Изменение значения в прокрутке UITableView
  • Реактивный какао ограничивает сигнал только одному абоненту сразу
  • флип-анимация в быстрых флипсах
  • Реализация подобной кнопки в tableviewCell в быстрой
  • ios недавно созданный быстрый импорт файлов какао по умолчанию в xcode
  • Реализация PageMenu / инициализация контроллеров представлений из раскадровки
  • iOS Swift - пользовательский UITableViewCell не работает с панелью вкладок
  • Изменение размера пользовательского UIInputViewController в iOS 9 с использованием nib
  • Swift.Extensions var и func. Какая из них лучше?
  • Поддержка IOS с Swift в SpriteKit
  • Сразу после сохранения в Firebase диспетчер открывается
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.