码迷,mamicode.com
首页 > 其他好文 > 详细

[BS-15] Values of type 'NSInteger' should not be used as format arguments

时间:2016-05-08 11:51:28      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

Values of type ‘NSInteger‘ should not be used as format arguments

 

苹果app支持arm64以后会有一个问题:NSInteger变成64位了,和原来的int (%d)不匹配,使用[NSString stringWithFormat:@“%d", integerNum]; 会报如下警告:

Values of type ‘NSInteger‘ should not be used as format arguments; add an explicit cast to ‘long‘ instead

 

解决办法:

1、系统推荐方法   [NSString stringWithFormat:@“%ld"(long)integerNum];

2、强制转换int    [NSString stringWithFormat:@"%d"(int)integerNum];

3、转为数字对象  [NSString stringWithFormat:@“%@", @(integerNum)];

4、使用%zd占位符  [NSString stringWithFormat:@“%zd"integerNum];  (最简单的方法)

补充:

关于%zd格式化字符,只能运行在支持C99标准的编译器中,表示对应的数字是一个size_t类型,size_t是unsigned int 的增强版,表示与机器类型相关的unsigned类型,即:size-t在32位系统下是unsigned int(4个字节),在64位系统中为long unsigned int(8个字节)。

 

C语言转义字符

     \\ 反斜杠

  \a 警告

  \b 退格

  \f 换页

  \n 换行

  \r 回车

  \t 跳格Tab

  \v 垂直跳格

      空格在输入时不需要转义,直接敲空格

 

 

[BS-15] Values of type 'NSInteger' should not be used as format arguments

标签:

原文地址:http://www.cnblogs.com/stevenwuzheng/p/5470034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!