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];
}
我正在使用 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];
}