Here is a better example:
let person: ABRecordRef = ABPersonCreate().takeRetainedValue()
let phoneNos = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue()
if ABMultiValueGetCount(phoneNos) > 0 {
print("yay") } else {
print("nay") //you will never see this }
Always crashes.
let person: ABRecordRef = ABPersonCreate().takeRetainedValue()
//lets add a number then
let phoneNumbers: ABMutableMultiValue =
ABMultiValueCreateMutable(ABPropertyType(kABMultiStringPropertyType)).takeRetainedValue()
ABMultiValueAddValueAndLabel(phoneNumbers, "1234", kABPersonPhoneMainLabel, nil)
ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumbers, nil)
let phoneNos = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue()
if ABMultiValueGetCount(phoneNos) > 0 {
print("yay")
} else {
print("nay") //you will never see this
}
Works just fine. I need to check if there is a phone number, how the #$^% am I supposed to do that when ABRecordCopyValue can't return a nil without exploding.