Как создать NSMutable Array, который может получить доступ из разных контроллеров представления - PullRequest
3 голосов
/ 28 августа 2011

Я довольно новичок в разработке для iphone, я хочу создать изменяемый массив, который может получать доступ и заполнять с разных контроллеров представления.Как мне это сделать?Если вы можете дать мне пример кода

Ответы [ 3 ]

3 голосов
/ 28 августа 2011

В MVC у вас есть представления, контроллеры и модели.Вы должны толкать как можно больше вниз.Несколько представлений и контроллеров могут работать в одной модели, которая управляет данными и бизнес-логикой.

В вашем случае у вас есть простой набор общих данных - изменяемый массив.

Я бы предложил создать класс, который содержит этот изменяемый массив и предоставляет методы.Обычным примером является то, что этот класс должен быть одноэлементным.

Итак, несколько контроллеров подойдут.

MyModel *model = [MyModel sharedInstance];

Тогда оба контроллера могут работать с ним.

Вотхорошая статья по теме: http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

синглтон от яблока: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW32

Надеюсь, что поможет.

1 голос
/ 28 августа 2011

В большинстве случаев не нужно и не полезно использовать глобальные переменные.Если вам нужно использовать их, проще всего поместить массив в ваш AppDelegate.

Вы можете получить доступ к массиву (именованный массив здесь в AppDelegate) с помощью:

YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];

NSArray *aArray= [appDelegate array];
1 голос
/ 28 августа 2011

В вашем @interface YourClass массиве отклонений:

@property (nonatomic, retain) NSMutableArray *publicArray;

В вашем @implementation YourClass напишите:

@synthesize publicArray;

Если у вас будет ссылка yourClassVariable на этот объект, вы можетеполучить доступ к этой переменной, используя [yourClassVariable publicArray]; или yourClassVariable.publicArray;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...