Первоначально я объявил двумерный массив следующим образом:
subUrb = [[NSArray alloc] initWithObjects:
[[NSArray alloc] initWithObjects:ALL_SUBURBS_LABEL, @"East",@"South", @"West", @"North", nil] ,
[[NSArray alloc] initWithObjects:ALL_SUBURBS_LABEL, @"Kuala Lumpur SubUrb1", @"Kuala Lumpur SubUrb2", nil],
[[NSArray alloc] initWithObjects:ALL_SUBURBS_LABEL, @"Jakarta SubUrb1",nil],
nil];
Но когда я пытаюсь «проанализировать» предупреждения проекта, у меня возникает три одинаковых типа проблем в этом куске кода - "потенциальная утечка объекта, расположенного в строке xxx"
Я заметил, что, чтобы избавиться от него, я должен написать вот что:
subUrb =
[[NSArray alloc] initWithObjects:
[[[NSArray alloc] initWithObjects:ALL_SUBURBS_LABEL, @"East",@"South", @"West", @"North", nil] autorelease],
[[[NSArray alloc] initWithObjects:ALL_SUBURBS_LABEL, @"Kuala Lumpur SubUrb1", @"Kuala Lumpur SubUrb2", nil] autorelease],
[[[NSArray alloc] initWithObjects:ALL_SUBURBS_LABEL, @"Jakarta SubUrb1",nil] autorelease],
nil];
Тогда яне получит никаких аналитических предупреждений.Но я не знаю, как это ... это не логично.Этот 2D-массив никогда не должен выпускаться в моем контроллере, фактически, весь 2D-массив должен храниться в течение всего срока службы контроллера для PickerView.
Как мне более элегантно объявить 2D-массив?