У меня есть тест маленький инструмент фундамент (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» является строковым литералом, и поэтому его не нужно выделять или выпускать?
Во-вторых, когда я запускаю это (до выполнения), я получаю следующий eror «неспособный прочитать неизвестную команду загрузки 0x80000022», если это проблема с моим кодом? от поиска в google, похоже, это может быть ошибка в xCode 3.1.2, у кого есть идеи?
Наконец все, что я делаю неправильно, идея заключается в том, чтобы заполнить массив с 10 строки «Planet_001» до «Planet_010»
EDIT: Ах, я вижу, вот из-за «= [NSString» бит т.е.
// Autoreleased object
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
// String literal
tempString = @"Planet_";
большое спасибо, очень ценится -gary-
Он выпустил пул: [пул дренажа] –
Спасибо, ребята, я вижу, что происходит сейчас, небольшое редактирование выше, чтобы объяснить ... – fuzzygoat
@ Крис, ты прав. Я не знал, что 'drain' делает' release'. –