首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSString到NSUInteger

NSString到NSUInteger
EN

Stack Overflow用户
提问于 2010-05-01 19:24:20
回答 4查看 16.9K关注 0票数 14

我在NSString @"15"里有个号码。我想把它转换成NSUInteger,但我不知道该怎么做...

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-01 19:30:38

代码语言:javascript
复制
NSString *str = @"15";
// Extract an integer number, returns 0 if there's no valid number at the start of the string.
NSInteger i = [str integerValue];

如果你真的想要一个NSUInteger,就强制转换它,但是你可能想要预先测试它的值。

票数 27
EN

Stack Overflow用户

发布于 2014-04-02 04:16:27

对于NSUInteger,当前选择的答案不正确。正如Corey Floyd指出的对所选答案的评论,如果值大于INT_MAX,这将不起作用。一种更好的方法是使用NSNumber,然后使用NSNumber上的方法之一来检索您感兴趣的类型,例如:

代码语言:javascript
复制
NSString *str = @"15"; // Or whatever value you want
NSNumber *number = [NSNumber numberWithLongLong: str.longLongValue];
NSUInteger value = number.unsignedIntegerValue;
票数 19
EN

Stack Overflow用户

发布于 2016-01-07 03:08:07

所有这些答案在64位系统上都是错误的。

代码语言:javascript
复制
NSScanner *scanner = [NSScanner scannerWithString:@"15"];
unsigned long long ull;
if (![scanner scanUnsignedLongLong:&ull]) {
  ull = 0;  // Or handle failure some other way
}
return (NSUInteger)ull;  // This happens to work because NSUInteger is the same as unsigned long long at the moment.

使用9223372036854775808进行测试,它不适合带签名的long long

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2749720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档