NSMutable массив - назначать и сохранять объекты - PullRequest
3 голосов
/ 21 февраля 2011

Мне нужна информация о том, как назначать, сохранять объекты.

Например - если у нас есть два viewcontroller и нам нужно передать данные массива из viewcontrlr 1 в viewContrl 2, как мы можем отправить объект из представления 1 в представление 2 и освободить его в представлении 1 и сохранить его вview 2.

Простой оператор = просто назначает адрес, который снова указывает на вид 1 объекта.Каков наилучший способ, чтобы мы могли освободить obj в представлении 1 и сохранить новый объект в представлении 2 при передаче из представления 1.

Ответы [ 2 ]

2 голосов
/ 21 февраля 2011

Создайте NSMutableArray в вашем контроллере представления 2 и объявите для него свойство сохранения.

@interface VC2 : UIViewController
{
   NSMutableArray *mutableArrayInVC2
} 
@property (nonatomic, retain) NSMutableArray *mutableArrayInVC2

Затем в вашем контроллере представления вы можете передать его с помощью:

viewController2Instance.mutableArrayInVC2 = mutableArrayInVC1

Иего можно разблокировать с помощью:

[mutableArrayInVC1 release];

[РЕДАКТИРОВАТЬ ДЛЯ АДРЕСА ВАШЕГО КОММЕНТАРИЯ]

Когда вы объявляете свойство сохранения для вашего mutableArrayInVC2 и передаете ему mutableArrayInVC1,«за кулисами» вы обращаетесь к переменной с помощью метода установки, как показано ниже:

-(void)setMutableArrayInVC2:(NSMutableArray *)arrayValue
{
    [arrayValue retain]; // This is your mutableArrayInVC1
    [mutableArrayInVC2 release]; // This is nil the first time you access it which is cool - we can send messages to nil in ObjC
    mutableArrayInVC2 = arrayValue; // So basically you end up doing and assignment but only after retaining the object so it is pointing to the same memory address BUT it is now 'owned' by your VC2 instance.
}

Надеюсь, это имеет смысл!Рог

0 голосов
/ 21 февраля 2011

Кроме того, вы можете проверить эту статью для получения информации о механизмах сохранения счета в целом. Это очень похоже на то, что есть в Программирование какао для Mac OS X , которое IMO является одной из лучших вводных книг по какао и Obj-C в целом. Я не уверен, какой у вас опыт работы с Obj-C / Cocoa, но если вы ищете такое вступление, это отличное место для старта.

...