ABRecordCopyCompositeName 和 CFBridgingRelease 崩溃问题

ABRecordCopyCompositeName and CFBridgingRelease crash issue

我正在使用 AddressBook 开发 IOS 应用程序。

这是我使用的代码。

我在 substringWithRange 函数上遇到崩溃问题。

崩溃原因是什么?

谢谢。

NSString * sort_name = CFBridgingRelease(ABRecordCopyCompositeName(person));
if (sort_name != nil) {
    [self Make_Sorting_Name:sort_name];


- (NSDictionary *)Make_Sorting_Name:(NSString *)sort_name {

            NSString * sort_char = [[NSString stringWithString:[sort_name substringWithRange:NSMakeRange(0, 1)]] uppercaseString];

            NSCharacterSet *nonDigits = [NSCharacterSet letterCharacterSet];
            BOOL containsNonDigitChars = ([sort_char rangeOfCharacterFromSet:nonDigits].location == NSNotFound);            

        }

ABRecordCopyCompositeName 函数有时可能 return nil 或空字符串。所以需要检查案例:

NSString *sort_char = @""; //or another specific character for sorting
if (sort_name != nil && sort_name.length > 0){
    sort_char = [[NSString stringWithString:[sort_name substringWithRange:NSMakeRange(0, 1)]] uppercaseString];
}