Как вы можете делить ивары между классами.? - PullRequest
0 голосов
/ 19 января 2010

В одном классе. У меня есть

NSMutableArray *rountines;

и в других классах. Я хочу сделать что-то вроде этого

 [routines addOject:@"Hello];

другой класс настроен для типа ModalViewController.

Итак, я хотел бы, чтобы .m файл MVC мог читать, редактировать и делать другие вещи с иварами, которые я объявил в заголовке.

Приветствия

Sam

редактировать

Другой пример, похожий на то, что я пытаюсь достичь, похож на экран редактирования.

Ответы [ 2 ]

2 голосов
/ 19 января 2010

Вы не можете делить ивары между классами на самом деле.ivar обозначает переменную экземпляра, и это переменная, которая принадлежит какому-то конкретному экземпляру объекта.Способ решения этой проблемы - предоставить другим объектам доступ к состоянию этого объекта.Чаще всего это делается с помощью методов установки и получения.Objective-C 2.0 облегчает эту задачу, предоставляя ключевые слова @property и @synthesize.

Если у вас был доступ к объекту с массивом процедур, вы можете получить к нему доступ через его свойство (метод получения), например:

[[someObject routines] addObject:@"hello"];
0 голосов
/ 19 января 2010

вы можете сделать это, сделав ivars, которым вы хотите поделиться глобальные переменные (в этом случае они будут ivars класса singleton или класса делегата приложения) или передав ссылку на нужный вам классчтобы изменить ivars в качестве аргумента для метода класса ModalViewController:

@implementation ModalViewController
......
-(void)addObjectToRoutinesFromClass: (MyClass *)myclass {
        [myclass.routines addObject:@"Hello"];
}

@implementation MyClass
  ......
  ModalViewController *myModalViewController = [[ModalViewController alloc] init];  
[myModalViewController addObjectToRoutinesFromClass:self];

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