美文网首页iOS Developer
在NSLog和stringWithFormat:中使用NSNum

在NSLog和stringWithFormat:中使用NSNum

作者: Jakuri | 来源:发表于2017-04-07 17:37 被阅读152次

    在使用<code>NSLog</code>或者<code>[NSString stringWithFormat:]</code>的过程中要将数字转为字符(格式化输出)的时候,我们常用%d,%ld,%f等格式字符,但是这样一来在32位和64位不同设备上,特别是当要输出的数字类型是不确定的时候,很容易产生问题。

    这时我们可以用<code>NSNumber</code>和<code>%@</code>:
    (<code>%@</code>代表一个oc对象, <code>@([变量名])</code>可以把一个数字转换为NSNumber)

    NSInteger integerValue = -1;
    NSUInteger uintegerValue = 2;
    CGFloat floatValue = 3.5;
    double doubleValue = 4.5;
    
    NSLog(@"NSInteger = %@", @(integerValue));
    NSLog(@"NSUInteger = %@", @(uintegerValue));
    NSLog(@"CGFloat = %@", @(floatValue));
    NSLog(@"double = %@", @(doubleValue));
    

    输出结果:

    NSInteger = -1
    NSUInteger = 2
    CGFloat = 3.5
    double = 4.5
    

    这样一来就不会有警告,也不会出错了。

    参考文献:
    苹果官方文档《String Programming Guide》:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html

    相关文章

      网友评论

        本文标题:在NSLog和stringWithFormat:中使用NSNum

        本文链接:https://www.haomeiwen.com/subject/olfzwttx.html