【发布时间】:2010-12-21 13:13:02
【问题描述】:
我正在尝试创建一个简单的整数变量,但无法让它接受值。
为什么 NSLog 会打印出i=(null)?
int i;
i = 0;
NSLog(@"i=%@", i);
如何为数组创建简单索引?....
谢谢...
【问题讨论】:
标签: objective-c integer
我正在尝试创建一个简单的整数变量,但无法让它接受值。
为什么 NSLog 会打印出i=(null)?
int i;
i = 0;
NSLog(@"i=%@", i);
如何为数组创建简单索引?....
谢谢...
【问题讨论】:
标签: objective-c integer
你创建的整数很好,问题是你不能像那样输出它。 %@ 用于输出目标 c 对象,而不是简单的 c 类型。
尝试:
int i;
i=0;
NSLog(@"i=%d",i);
【讨论】:
NSInteger 是 long 或 int 的 typedef,具体取决于平台。它不是一个对象。对应的对象是NSNumber。 i++ 应该不是问题。它在NSLog 中崩溃。如果没有i++,您将尝试在地址0x0 处打印对象,该地址等于nil。这是有效的。但是使用i++,您尝试访问地址为0x1 的对象,该地址是受保护的内存,因此当您访问它时它会崩溃。