Я только что нашел свой конкретный вопрос, и хотя ответы на него близки, я не могу найти ответ ... поэтому мне нужна помощь.
Я хотел бы заполнить массив (я полагаю, NSMutableArray) группой объектов словаря, которые анализируются из строк JSON ... часть словаря, которую я получил, синтаксический разбор JSON, но когда я пытаюсь поместить эти объекты в NSMutableArray и NSLog это я получаю (ноль) ... вот мои шаги (в общем случае)
изменить 1:
-Массив, который я создаю, называется NewFinalArray. это NSMutableArray, объявленный в файле .h и синтезированный (а теперь alloc'd и init'd), как отмечено в методе viewDidLoad объекта DetailViewController. Его содержимое должно отображаться в UITableView.
- В DetailViewController я успешно создал простой NSArray / NSMutableArray и заполнил его значениями, которые отображаются в моем UITableView.
-В новом сценарии я получаю информацию для отображения через строки JSON, которые можно получить через объекты словаря. Я использую библиотеки Stig JSON для iPHone / iPad. У меня нет проблем там.
-Все, что я хотел сделать, это получить существующие объекты словаря (которые я могу перебрать из существующего массива и посмотреть) и добавить их в новый массив, который будет использоваться для отображения пунктов меню в моем UITableview.
Я объявил свой mutableArray в моем .h файле
@interface blah : ...,...,...{
NSMutableArray *newFinalArray;
// other vars and IBOutlets
}
@property (nonatomic, retain) NSMutableArray *newFinalArray;
// other @property and (IBAction) stuff
@end
Затем я синтезирую его в своем файле .m ... Я даже размещаю / запускаю его в viewDidLoad (это DetailViewController)
@synthesize this,that, newFinalArray; // keep track of newFinalArray, that's the one I want
- (void)viewDidLoad {
// other code
[[newFinalArray alloc] init]; // ya returns a warning, about not responding to alloc, but whatever (for now)
// I also tested of course without having to do that.
в моем методе, который использует newFinalArray, метод является рекурсивной функцией, которая вызывает сама себя. каждый раз, когда он вызывает, он должен добавить объект словаря в массив (или это?)
-(void)digTree:(NSArray *)array{
for (NSDictionary *dictionary in array){
// looping through the array
[self newFinalArray addObject:[dictionary]];
// more other code, and somewhere along the way I recurse
[self digTree:anotherArray];
}
}
когда я пытаюсь выполнить NSLog (@ "мой последний массив% @", newFinalArray), я получаю (ноль).
Я, наверное, что-то здесь упускаю. Я пытался добавить "ноль" в конце. Я немного новичок в этом, поэтому, если кто-то сможет протянуть руку и дать мне знать, как заполнить мой newFinalArray этими объектами словаря, это будет очень ценно.