我有一點基礎的工具測試(Objective-C的),我有玩,我有幾個問題...將字符串對象添加到NSMutableArray?
#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,任何人有任何想法?
最後什麼我做錯了,這個想法是通過對「Planet_010」
編輯,以填補10字符串「Planet_001」的數組:啊,我明白了,因爲「= [NSString的」位的多數民衆贊成即
// Autoreleased object
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
// String literal
tempString = @"Planet_";
千恩萬謝,感激-gary-
他確實發佈了游泳池:[pool drain] – 2009-09-15 02:50:37
謝謝你們,我現在看到發生了什麼事,上面的小編輯來解釋... – fuzzygoat 2009-09-15 06:26:51
@Chris你說得對。我沒有意識到'漏'這個'釋放'。 – 2009-09-15 12:34:11