Я пытаюсь сохранить ABRecordID существующего контакта из адресной книги в основные данные. У меня есть Int32 определены в моей модели, но для того, чтобы сохранить свой объект там мне нужно преобразовать ABRecordID (которая является Int32) в NSNumberПреобразование ABRecordID в NSNumber всегда -1
Вот мой код, который преобразует его:
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, didSelectPerson person: ABRecord!, property: ABPropertyID, identifier: ABMultiValueIdentifier) {
let multiValue: ABMultiValueRef = ABRecordCopyValue(person, property).takeRetainedValue()
let index = ABMultiValueGetIndexForIdentifier(multiValue, identifier)
let pickedVal = ABMultiValueCopyValueAtIndex(multiValue, index).takeRetainedValue() as! String
let theRecord = recordIdFromPersonRecord(person)
println(ABRecordGetRecordID(person!))
func recordIdFromPersonRecord (personRecord: ABRecord) -> NSNumber {
let recordId = ABRecordGetRecordID(personRecord)
println(personRecord)
return (NSNumber(int: recordId))
}
Этот код всегда печатает -1 в консоли, независимо от того, какую запись я выбираю в своей адресной книге. Я программист новичков, и я полностью застрял.
Благодарим за помощь!
EDIT: Commenter ниже указано, что это значение зарезервировано для записей, которые не существуют в базе данных адресной книги ...
Это сбивает с толку. Я просто просматриваю AB, чтобы получить значение имени и идентификатор из существующих записей ... как существующие записи не имеют записи, сохраненной в базе данных адресной книги? Вот что такое определение из документов: Записи с этим идентификатором не были сохранены в базе данных адресной книги. Я не понимаю?
«-1» - значение для специального идентификатора записи 'kABRecordInvalidID'. См. Документы для 'ABRecordGetRecordID'. – rmaddy
Это запутанно. Я просто просматриваю AB, чтобы получить значение имени и идентификатор из существующих записей ... как существующие записи не имеют записи, сохраненной в базе данных адресной книги? Вот что такое определение из документов: Записи с этим идентификатором не были сохранены в базе данных адресной книги. Я не понимаю? – Charlie