我有一个小基础工具测试(Objective-C),我正在玩,我有几个问题......
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int planetLoop;
NSString *tempString;
NSMutableArray *planetArray = [[NSMutableArray alloc] init];
NSLog(@"STRING ARRAY ... Start");
for(planetLoop=0; planetLoop<10; planetLoop++) {
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
NSLog(@"Planet_%03d", planetLoop+1);
[planetArray addObject:tempString];
}
[planetArray release];
[pool drain];
return 0;
}
首先,通常我在将对象添加到数组后释放它,但我是否认为我目前拥有的是正确的,因为“tempString”是一个字符串文字,因此不需要分配或释放?
其次,当我运行这个(在执行之前)时,如果我的代码有问题,我会收到以下错误“无法读取未知的加载命令 0x80000022”?从谷歌上搜索它看起来可能是 xCode 3.1.2 中的一个错误,有人有什么想法吗?
最后我做错了什么,想法是用10个字符串“Planet_001”填充一个数组到“Planet_010”
编辑:啊,我明白了,那是因为“= [NSString”位即
// Autoreleased object
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
// String literal
tempString = @"Planet_";
非常感谢,非常感谢 -gary-