2013-11-11 1 views
0
ABMultiValueRef phoneNumbers = ABRecordCopyValue((__bridge ABRecordRef)([arrTemp1 objectAtIndex:i]), 
                   kABPersonPhoneProperty); 
       if (ABMultiValueGetCount(phoneNumbers) > 0) { 
        phone = (__bridge_transfer NSString*) 
        ABMultiValueCopyValueAtIndex(phoneNumbers, 0); 
       } else 
       { 
        phone = @"[None]"; 
       } 

после этой строки кода я получаю «Объект просочилась: объект выделяется и сохраняется в„PHONENUMBER“не ссылается позже в этом пути выполнения и имеет сохранить количество +1» , Я видел несколько подобных сообщений, но не получил точного решения для моего вопроса. Из-за этих утечек мое приложение падает. Итак, кто-нибудь знает это, пожалуйста, помогите мнекак решить объект просочилась в адресной

+0

номера телефонов используется в любом месте после этого LOC –

+0

да будет показывать U весь код ABMultiValueRef = ABRecordCopyValue номера телефонов ((__ моста ABRecordRef) ([arrTemp1 objectAtIndex: я]), kABPersonPhoneProperty); if (ABMultiValueGetCount (phoneNumbers)> 0) { phone = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex (phoneNumbers, 0); } else { phone = @ "[None]"; } – abymathew

+0

Пожалуйста, добавьте это в вопрос ..Edit доступен в нижней части Qn –

ответ

1

Попробуйте этот код.

ABMultiValueRef phoneNumbers = ABRecordCopyValue((__bridge ABRecordRef)([arrTemp1 objectAtIndex:i]),kABPersonPhoneProperty); 

if (ABMultiValueGetCount(phoneNumbers) > 0) { 
     phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0); 
} else { 
     phone = @"[None]"; 
} 

CFRelease(phoneNumbers); 
+0

, когда этот код получает «Неправильный декремент ссылочного счета объекта, который не принадлежит на данный момент вызывающим» ... – abymathew

+0

Какая линия? Я использую Windows-машину, поэтому я не могу отладить код – PgmFreek

+0

Я обновил свой ответ. пожалуйста, проверьте – PgmFreek

0

Поскольку эти объекты являются объектами CoreFoundation, вы должны использовать CFRelease, чтобы освободить занятую память. Вы должны использовать CFRelease(phoneNumbers); . Оформить следующие Link, чтобы освободить память, занимаемую объектами ABMultiValueRef.

Смежные вопросы