我的核心数据中有一个表,其中一个字段称为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] ) {
}

10-08 17:47