Ios 将NSString转换为无符号长字符串

Ios 将NSString转换为无符号长字符串,ios,nsstring,Ios,Nsstring,我有一个NSString值,我想在无符号long中转换该值。我使用了下面的代码 NSString *updateId = [NSString stringWithFormat:@"%@",[tweet updateId]]; NSLog(@"%@",[tweet updateId]); unsigned long tweetId = [updateId longLongValue]; NSLog(@"ButtonPressed: .......%llu",tweetId); 但是它没有返回

我有一个
NSString
值,我想在
无符号long
中转换该值。我使用了下面的代码

NSString *updateId = [NSString stringWithFormat:@"%@",[tweet updateId]];

NSLog(@"%@",[tweet updateId]);
unsigned long  tweetId = [updateId longLongValue];
NSLog(@"ButtonPressed: .......%llu",tweetId);

但是它没有返回正确的值…

您可以从C stdlib尝试
atol
功能:

unsigned long tweetId = atol( [ updateId cStringUsingEncoding: NSASCIIStringEncoding ] );

顺便说一下,您的NSLog应该是
lu
,而不是
llu

,Cocoa的方法是使用
[NSNumberFormat]

[tweet updateId]的类型是什么?
它是否包含任何本地化(如千个分离器)?

如果是这样,您可以使用
setLocale:

NSNumberFormatter
实例配置为返回什么?updateId返回的数据类型是什么?updateId返回的是NSstring。。我的输出是65278530740695040 2011-05-03 12:47:56.704 MiniTwit[2949:207]按钮按下:……607146802562069976要请求支持从NSString读取未签名值,请访问并提交一份副本radar://2264733 针对组件
Foundation | X
。我应该包括哪个头文件?它发出警告NSString可能不会响应CStringUsingEncoding您使用的是CStringUsingEncode还是CStringUsingEncode?方法区分大小写;NSLog(@“%lu”,[[formatter numberFromString:updateId]unsignedLongValue]);[_引擎删除更新:格式化程序];[格式化程序发布];不工作给警告那你为什么要用另一个字符串来包装它呢?您可以直接将[tweet updateId]传递给numberFromString:。警告是传递'deleteupdate'的参数1使指针中的整数不带大小写。。。方法是-(NSString*)deleteUpdate:(unsigned long)updateId您的deleteUpdate:方法是否接受未签名的long值?传递[formatter unsignedLongValue]您直接传递的是格式化程序。这不行。使用[formatter unsignedLongValue]获取无符号长值
unsigned long tweetId = [[NSNumber numberWithInteger:[updateId integerValue]] unsignedLongValue];
unsigned long tweetId = [[NSNumber numberWithInteger:[updateId integerValue]] unsignedLongValue];