2017-01-20 2 views
0

신속한 CF 클래스를 사용하며 적절하게 관리하려고합니다. 예를 들어 나는이 라인이 : 나는 다시 objc에서 주소록 클래스를 사용할 때 내가 메소드를 호출 할 때마다신속한 Core Foundation 3

let phones = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue() 

일반적으로, 이름으로 복사 가지고 있는데 그 객체를 사용을 마친 후 나는 CFRelease()를 호출해야합니다.

지금 빠른에 내가

takeRetainedValue() 
takeUnretainedValue() 
retain() 
autorelease() 

를 호출하는 4 가지 옵션이 있습니다 그러나 더 release()이 없습니다. 그래서 내가 CF 오브젝트를 신속하게 사용하고 나서 그것을 릴리즈하고 싶다면, 이것들 중 어느 것을 사용합니까?

+0

대신 'Contact.framework'를 사용하는 것이 더 합리적 일 수 있습니다. – holex

+0

불행히도 iOS8을 지원해야합니다. – MegaManX

답변

1

takeRetainedValue()을 호출하면 ARC에 소유권이 이전되어 하나의 보유가 사용됩니다. 전화 번호는 release입니다.