作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个使用 myarray 的方法,该方法在同一个类中定义。当我使用 count 时,它总是返回 0。当我使用时:
printf("%d", [myarray count]);
编译器说:
Format '%d' expetcs type 'int', but argument 2 has type 'NSUInteger'
为什么?
最佳答案
您应该使用%lu
而不是%d
。编译器根据您传递给 printf 的参数检查格式字符串,发现您传递的是无符号但将其打印为有符号整数,并发出警告。该警告表明,对于大于或等于 2^31 的数字,当数据类型暗示不同的语义(即大的正整数)时,printf
将输出大的负数。
已编辑以回应 Josh Caswell 和 thepepp 的评论
关于cocoa - NSU整数转int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8809515/
我是一名优秀的程序员,十分优秀!