Прошло много времени с тех пор, как я занимался программированием. Раньше нормально читал C & C ++ ... никогда много не писал.
У меня есть чрезвычайно простой класс, который я хочу использовать для управления содержимым массива (используя NSMutableArray
). Массив должен сохраняться как объект, чтобы я мог вносить в него несколько обновлений за один прогон моей программы (пока не беспокоюсь о сохранении данных о состоянии на диск)
Вот моя проблема. Мне неясно, где и когда я должен выделять / инициализировать мой объект Array, чтобы он находился в рабочем состоянии при каждом нажатии кнопки в представлении моего iPhone.
Я пытаюсь создать подкласс ViewController
, который включает в себя массив в качестве переменной экземпляра, на который затем можно ссылаться в коде, который реагирует на нажатия кнопок в представлении. Я пробовал 3 подхода
Я пытался просто ссылаться на переменную экземпляра массива в методе, который я написал как часть того же класса. Нет Alloc / Init нигде в этой версии кода. Когда я вызываю функцию addObject, происходит сбой, поскольку объект массива не был выделен / инициализирован.
Я также пытался выделить / инициализировать экземпляр моего массива в методе viewWillDisplay
. Компилятор Xcode жалуется, что мой недавно выделенный объект никогда не используется.
Для ударов я сделал alloc / init в рамках метода «нажатия кнопки», который я пишу ... но, конечно, он выделяет новый экземпляр каждый раз, когда я нажимаю кнопку.
Вот что у меня есть в файлах .h
и .m
для моего примера (здесь показан сценарий 1)
Был бы очень признателен, если бы кто-то мог заполнить бланк GIANT. Я, очевидно, понял, как предполагается использовать объекты Instance Variable. (Я прочитал множество документов по Apple на Obj-C ... и т. Д. Также погуглил мои мозги, пытаясь найти объяснение.
.h:
#import <UIKit/UIKit.h>
@interface ArrayManagerViewController : UIViewController {
NSMutableArray *buttonArray;
}
- (IBAction)buttonClicked:(id)sender;
@end
и .m
#import "ArrayManagerViewController.h"
@implementation ArrayManagerViewController
- (IBAction) buttonClicked:(id)sender {
NSString *senderTitle = [sender currentTitle];
int intSenderTitle = [senderTitle intValue];
[buttonArray insertObject:[NSString stringWithFormat:@"%d",
intSenderTitle]
atIndex:intSenderTitle];
for (id obj in buttonArray)
NSLog(@"Object Value %@", obj);
}