Это именно то, что вам нужно сделать в вашем .h файле, добавьте эту строку:
@property(nonatomic, retain) Bible finalBible;
Затем в вашем .m файле добавьте эту строку вверху:
//This generates the methods (get, set) for your instance variable
@synthesize finalBible;
Затем оставьте эту строку:
finalBible = [[Bible] alloc]init];
Это потому, что если вы сохраните его, то здесь будет утечка памяти:
finalBible = [parser getBible];
Поскольку теперь вы указываете на новую ячейку памяти, а в предыдущей ячейке памяти был объект с счетом сохранения 1, предоставленным alloc init, и, поскольку больше не будет никакой ссылки на этот объект, он никогда не будет освобожден. вызывает утечку памяти.
Хотя, если вы используете эту строку:
self.finalBible = [parser getBible];
Поскольку используется установщик, установщик освобождает предыдущее значение и сохраняет новое, поэтому утечки памяти не будет, но выделять этот объект все равно будет бессмысленно.
Поскольку getBible не имеет ключевого слова new, alloc or init
, он должен возвращать объект autoreleased
, поэтому объект освобождается в следующем цикле выполнения (не гарантируется, но, скорее всего), поэтому вы не можете получить к нему доступ снаружи метода viewDidload()
.