Кажется, мне не хватает ключевой фундаментальной концепции при передаче данных между двумя классами. Я прочитал еще один пост здесь, и я прокомментирую это через секунду, но вот что у меня есть. В пользовательском классе представления я получил NSMutableDictionary, который работает нормально и сохраняется:
@interface myView : UIView {
}
@property (nonatomic, retain) NSMutableDictionary*myDictionary;
Методы в myView используют myDictionary без проблем. Например, я могу сделать это нормально:
NSArray*sorted=[[NSArray alloc] initWithArray:[self.myDictionary keysSortedByValueUsingSelector:@selector(compare:)]];
В моем контроллере представления я пытаюсь создать аналогичный массив, используя те же данные в объекте myDictionary из пользовательского класса:
@interface myViewController : UIViewController {
}
@property (nonatomic, retain) IBOutlet myView * myView;
Тогда позже у меня будет:
NSArray*sorted=[[NSArray alloc] initWithArray:[self.myView.myDictionary keysSortedByValueUsingSelector:@selector(compare:)]];
Однако этот myDictionary всегда пуст. Он не публикуется нигде в myView, поэтому он должен содержать данные. Я попытался удалить "себя" без удачи.
Теперь я прочитал этот похожий пост:
Данные не передаются между классами - Objective-C
Это единственный способ сделать что-то подобное? Это подразумевает, что вы должны «отправить» данные из исходного класса в принимающий класс. Это говорит о том, что у вас не может быть получающего класса, который "извлекает" данные из исходного класса, как я здесь Это правильно? Что еще более важно, если это единственный метод, то почему так?