objective-c - 将 string 转换为 int 会更改值

标签 objective-c cocoa nsstring integer

我正在尝试将从 XML 解析器检索到的字符串值转换为整数。不幸的是,我发现整数值没有反射(reflect)字符串中的数字,我不明白为什么。这是我的代码:

int maxTweetID = [[[_dataArray lastObject]tweetID]intValue];

NSLog(@"String Value of tweet ID: %@",[[_dataArray lastObject]tweetID]);
NSLog(@"Int Value of tweet ID: %i",[[[_dataArray lastObject]tweetID]intValue]);

这是我从调试器得到的信息:

2012-05-15 10:58:44.395 nearYou[2460:707] String Value of tweet ID: 202425636143370242
2012-05-15 10:58:44.396 nearYou[2460:707] Int Value of tweet ID: 2147483647

这是为什么?

最佳答案

该数字太大,无法容纳 32 位 int。您想要做的是使用 long 代替:

long maxTweetID = [[[_dataArray lastObject]tweetID]longValue];

编辑:

你实际上需要在 Objective-C 中使用 long long:

long long maxTweetID = [[[_dataArray lastObject]tweetID]longLongValue];

关于objective-c - 将 string 转换为 int 会更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10606281/

相关文章:

ios - 检测到 13.56Mhz 时禁用 Apple Pay UI

objective-c - NSString的高效字符处理

objective-c - 有没有比我的实现更好的方法来检查更新的文件?

ios - 使用 NSStringCompareOptions 在 iOS 中对负数字符串进行排序

macos - NSScrollView 中的自定义 View 在滚动时乱写乱画

swift - 如何使用 Swift 将每个句子中的第一个单词大写

ios - 如何正确使用 UITableViewCell 和 UITableViewCellStyle 以及单元格重用?

iphone - 如何从我的应用程序中的存折访问通行证?

ios - 为 UITableViewCell 添加不同的子层覆盖 Cell 的 subview

cocoa - 如何从 CoreData-Entities 获取一些值到代码