0
ABMultiValueRef phonesRef = ABRecordCopyValue(person, kABPersonPhoneProperty);
for (int i=0; i < ABMultiValueGetCount(phonesRef); i++)
{
CFStringRef currentPhoneLabel = ABMultiValueCopyLabelAtIndex(phonesRef, i);
CFStringRef currentPhoneValue = ABMultiValueCopyValueAtIndex(phonesRef, i);
if (currentPhoneLabel != nil && currentPhoneValue != nil)
{
if (CFStringCompare(currentPhoneLabel, kABPersonPhoneMobileLabel, 0) == kCFCompareEqualTo)
{
[contactInfoDict setObject:(__bridge NSString *)currentPhoneValue forKey:@"workNumber"];
}
if (CFStringCompare(currentPhoneLabel, kABHomeLabel, 0) == kCFCompareEqualTo)
{
[contactInfoDict setObject:(__bridge NSString *)currentPhoneValue forKey:@"homeNumber"];
}
}
else if (currentPhoneValue != nil && currentPhoneLabel == nil)
{
[contactInfoDict setObject:(__bridge NSString *)currentPhoneValue forKey:@"workNumber"];
}
CFRelease(currentPhoneLabel);
CFRelease(currentPhoneValue);
}
CFRelease(phonesRef);
Вот мой код для импорта контактов телефонов в моем Ios приложение, но когда currentPhoneLabel равна нулю xocde для CFRelease (currentPhoneLabel). Я не знаю, почему это происходит. Любая помощь будет очень заметной.CFStringRef релиз дает плохой доступ, когда он равен нулю
Благодаря
Я имею в виду снизу StackOverflow ответы, которые о релиз памяти, в вашем журнале сбоев, если на этой метке нет данных, как это освободить память? это должно быть крах? http://stackoverflow.com/questions/17959760/do-i-need-to-manually-release-cfstringref –