如何在 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