0

我的核心数据中有一个表,其中一个名为 userId 的字段是一个整数。

我成功获取它并将其分配给具有以下代码的 id:

id userId2 = [info valueForKey:@"userId"];

info 是我的 NSManagedObject 和 userId2 是一个 id。现在我想将 userId2 转换为字符串。我读到我可以直接执行以下操作:

NSString *userId3 = userId2;

但是,当我在字符串和 userId3 之间执行 if 检查时,即使它们具有相同的值,检查也会失败。

还有一件事,Xcode 说 userId 在调试模式下不是 CFString 。


我的解决方案是通过以下方式将两个变量都转换为双精度:

double myDouble = [userId3 doubleValue];

还有其他建议吗?

4

2 回答 2

2

如果userId字段是数字,则不是NSString,而是NSNumber。对于这个简单的案例,您可以使用...

NSString *userId3 = [userId2 stringValue];

... 或者 ...

NSString *userId3 = [NSString stringWithFormat:@"%d", [userId2 intValue]];

...和字符串比较应该以这种方式完成...

if ( [str1 isEqualToString:str2] ) {
}
于 2012-07-24T12:27:12.687 回答
0

NSString 是一个可爱的类,文档中有很多可用的,特别是当你想将数字显示为 NSStrings 时,

如果你不熟悉 NSNumber、NSDecimalNumber 等,我会认真地玩弄它,当涉及到 int、float 和 doubles,然后处理 NSNumber + NSDecimalNumber 时会有点混乱。

我建议尽早“将其扼杀在萌芽状态”!

于 2012-07-25T15:25:14.713 回答