根据以下代码,请提供建议。
NSString *str= [[NSString alloc] initWithString:@"Hello world"];
NSLog(@"Length: %lu\n", [str length]); // 11
NSLog(@"Retain count is %lu\n", [str retainCount]); //1152921504606846975
[str release];
NSLog(@"%lu\n", [str length]); // 11
NSLog(@"Retain count is %lu\n", [str retainCount]); //1152921504606846975
最初我想知道为什么数字这么大,但后来看到了一个解释帖子。我改问这个问题...为什么当我使用
%d
与%lu
时,这个数字会大幅变化? 最初我使用的是%d
,但出现了一个警告,指出“转换规定类型为int,但参数类型为NSUInteger(也称unsigned long)。修复方法是将%d
更改为%lu
”。为什么保留计数没有减少? 在
str
被发送release
后,大数字仍然不变为什么在
str
被发送release
后,我仍然能够访问它?
-release
?!1!” - jtbandes