发布CFString

iAr*_*zki 1 iphone memory-management objective-c cfstring ios

我使用此代码获取ABPerson的姓氏

CFStringRef lastNameRef = ABRecordCopyValue((ABRecordRef)personRecordRef, kABPersonLastNameProperty);
NSString *friendLastName = (NSString*)lastNameRef;
CFRelease(lastNameRef);
Run Code Online (Sandbox Code Playgroud)

当姓氏值不等于NULL时它工作正常但当此值为NULL时,应用程序在第三行崩溃,因为我尝试释放NULL

问题是女巫是在这种情况下释放CFString而不会导致应用程序崩溃的最佳方式

Ham*_*son 6

只需使用if来检查NULL.

if (lastNameRef != NULL)
    CFRelease(lastNameRef);
Run Code Online (Sandbox Code Playgroud)