所以我可以说:
NSString *stringObject = (__bridge NSString*)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);
NSLog(@"%@", [stringObject class]); - RETURNS "(null)"
这怎么可能?您如何解决这样的问题?
我试图返回一个空字符串,以防该字符串为“(null)”。
我试过了:
NSString *lastName = ![stringObject isEqual:@"(null)"] ? stringObject : [NSString string];
要么
NSString *lastName = ![stringObject isEqualToString:@"(null)"] ? stringObject : [NSString string];
要么
NSString *lastName = ![stringObject isEqual:[NSNull null]] ? stringObject : [NSString string];
要么
NSString *lastName = [stringObject isKindOfClass:[NSString class]] ? [NSString string] : stringObject ;
要么
NSString *lastName = (stringObject == nil) ? [NSString string] : stringObject ;
还有其他建议吗?
先感谢您。
最佳答案
该联系人没有姓氏,因此stringObject
是nil
。用一些代码验证:
NSLog(@"Last name='%@'", stringObject);
编辑如何验证:
只需测试对象是否为
nil
,最好还是检查字符串是否具有length > 0
,您可以像这样简单地进行操作:NSString *stringObject = (__bridge NSString*)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);
if ([stringObject length]) {
NSLog(@"Contact last name = '%@'", stringObject);
} else {
NSLog(@"Contact has no last name; they must play for Brazil");
}
关于ios - iOS-[stringObject类]从电话联系人返回“(null)”?这怎么可能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25119161/