如何在 Objective-C 中将 long 转换为 NSString?
How to convert long to NSString in Objective-C?
我尝试将 long (value: 454555)
转换为 NSString
。但是每次我尝试它时,我都会得到像 @"-5026338884877204098"
这样的垃圾值。
我怎样才能将它转换为与 454555 相同的值?
尝试
long l = 454555;
NSString * s = [NSString stringWithFormat:@"%ld", l];
请注意,这不是语言环境感知的……但很方便,听起来就像您正在寻找工作的人。这里的 %ld 表示 l=long d=decimal/int(即 long)值在参数中紧随其后。
编辑
如果您喜欢 @
方式,只需执行下面的代码。
int main(int argc, const char * argv[]) {
@autoreleasepool
{
NSLog(@"Hello, World!");
for ( long i = 0; i < 1000000; i ++ )
{
// Direct ...
NSString * s = [NSString stringWithFormat:@"%ld", i ];
}
NSLog(@"1");
for ( long i = 0; i < 1000000; i ++ )
{
// Indirect via NSNumber ...
NSString * s = @(i).stringValue;
}
NSLog(@"2");
}
return 0;
}
你可以通过
初始化一个NSString
NSString *a = @(454555).stringValue;
这里可以把所有数学类型的值都放在括号里,比如
NSString *a = @(0.1).stringValue;//a float value
NSString *a = @(9223372036854775807).stringValue;//it's a longlong value
我尝试将 long (value: 454555)
转换为 NSString
。但是每次我尝试它时,我都会得到像 @"-5026338884877204098"
这样的垃圾值。
我怎样才能将它转换为与 454555 相同的值?
尝试
long l = 454555;
NSString * s = [NSString stringWithFormat:@"%ld", l];
请注意,这不是语言环境感知的……但很方便,听起来就像您正在寻找工作的人。这里的 %ld 表示 l=long d=decimal/int(即 long)值在参数中紧随其后。
编辑
如果您喜欢 @
方式,只需执行下面的代码。
int main(int argc, const char * argv[]) {
@autoreleasepool
{
NSLog(@"Hello, World!");
for ( long i = 0; i < 1000000; i ++ )
{
// Direct ...
NSString * s = [NSString stringWithFormat:@"%ld", i ];
}
NSLog(@"1");
for ( long i = 0; i < 1000000; i ++ )
{
// Indirect via NSNumber ...
NSString * s = @(i).stringValue;
}
NSLog(@"2");
}
return 0;
}
你可以通过
初始化一个NSStringNSString *a = @(454555).stringValue;
这里可以把所有数学类型的值都放在括号里,比如
NSString *a = @(0.1).stringValue;//a float value
NSString *a = @(9223372036854775807).stringValue;//it's a longlong value