![](/img/trans.png)
[英]Replacement for `fabs`, `fmax`, etc. for use with CGFloat on 64-bit iOS devices
[英]Parsing 64-bit unsigned integer on iOS
我在NSString中有非常大的無符號整數。 這可能很大到2 ^ 64。 是否有現有的函數/類解析這個?
據我所知,它是無符號的long long值,但是,我很難知道應該使用哪種方法來解析它。
也許不是最漂亮的答案,但你應該能夠做到這樣的事情:
#include <stdlib.h>
...
unsigned long long parsedValue = strtoull([yourString UTF8String], NULL, 0);
其他人可能有更可靠的方式來做這件事。
這是一個舊版本,但這里是斯蒂芬·佳能(正確)回答的一個稍微更可靠的變體:
#import <stdlib.h>
@implementation NSString (MyHelpers)
- (unsigned long long)unsignedLongLongValue {
return strtoull([self UTF8String], NULL, 0);
}
@end
現在所有字符串都將響應unsignedLongLongValue選擇器。
這可能會有效,但它只能達到2 ^ 63 - 1 :
NSScanner *scanner = [NSScanner scannerWithString:numericString];
long long valueFromString;
if(![scanner scanLongLong:&valueFromString]) {
//ERROR
}
NSScanner似乎沒有scanUnsignedLongLong方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.