【问题标题】:Converting int into NSString [duplicate]将 int 转换为 NSString [重复]
【发布时间】:2012-08-22 14:16:08
【问题描述】:

我想在 NSString 中转换一个随机 int 数,然后将 NSString 分配给另一个 NSString 但它会使应用程序崩溃

我正在做以下事情

int mynumber =(arc4random() % 1000 );

unique = [NSString stringWithFormat:@"%d",mynumber];

   NSLog(unique)

   NSString*test=unique;

当我写最后一行时它会崩溃;

当我 nslog unique 字符串时,它也会打印值。

【问题讨论】:

标签: iphone nsstring int


【解决方案1】:

如果你想把int改成字符串

NSString *strFromInt = [NSString stringWithFormat:@"%d",yourintvalue];

【讨论】:

    【解决方案2】:

    这也有效:

    NSString *str = [@(number) stringValue];
    

    或者,如果您更喜欢点符号:

    NSString *str = @(number).stringValue;
    

    这将使用表达式装箱语法@(...) 将原始值装箱为NSNumber,然后使用其'stringValue 方法将其转换为NSString。这也适用于其他原始值(NSIntegerfloatdoublelong,...)。

    【讨论】:

    • stringWithFormat 语法相比有什么缺点/优势吗?
    • 这里的好处是它适用于任何原始类型,您不需要显式设置格式参数。另外,我觉得这更简洁易懂,但这是一个品味问题。这是通过 XCode 4.4 中引入的表达式装箱语法实现的
    【解决方案3】:
    NSString *anotherStr;
    int myNumber = (arc4random() % 1000 );
    NSString *stringNum = [NSString stringWithFormat:@"%i", myNumber];
    anotherStr = stringNum; //assign NSString to NSString
    // Here you can convert NSString to Int if you want.
    NSLog(@"My number as NSString = %@", stringNum);
    int getNumFromString = [stringNum intValue];
    
    NSLog(@"My number from NSString = %i", getNumFromString);
    

    【讨论】:

      【解决方案4】:

      你错误地使用了 NSLog 语句。它应该像下面这样使用。

      NSLog(@"%@",unique);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-30
        • 2013-01-16
        • 2012-12-17
        • 2023-04-05
        • 2014-07-11
        • 1970-01-01
        相关资源
        最近更新 更多