我的核心数据中有一个表,其中一个字段叫做userId,它是一个整数。
我成功获取并使用以下代码将其分配给id:
id userId2 = [info valueForKey:@"userId"];
info是我的NSManagedObject,userId2是id。现在我想将userId2转换为字符串。我读到我可以直接执行以下操作:
NSString *userId3 = userId2;
但是,当我在字符串和userId3之间执行if检查时,即使它们具有相同的值,检查也会失败。
还有一件事,Xcode说userId在调试模式下不是CFString。
我的解决方案是将两个变量转换为double:
double myDouble = [userId3 doubleValue];
还有其他建议吗?
如果userId
字段是数字,它不是NSString
,而是NSNumber
。对于这个简单的情况,你可以使用......
NSString *userId3 = [userId2 stringValue];
... 要么 ...
NSString *userId3 = [NSString stringWithFormat:@"%d", [userId2 intValue]];
......并且应该以这种方式进行字符串比较......
if ( [str1 isEqualToString:str2] ) {
}
NSString是一个很可爱的类,文档中有很多可用的内容,特别是当你想将数字显示为NSStrings时,
如果您不熟悉NSNumber,NSDecimalNumber等等,我会认真对待它,当涉及到int,float和double,然后处理NSNumber + NSDecimalNumber时,它会让人感到有些困惑。
我会建议尽快“扼杀它”!