Способы держать группу объектов общей - PullRequest
1 голос
/ 05 декабря 2011

Я довольно плохо знаком с целью-c. Я пытаюсь разработать в основном экспериментальные проекты для будущей разработки игрового приложения.

Я хотел бы получить предложения о том, что мне следует использовать для следующих целей.

Я пытаюсь сохранить группу объектов где-нибудь (скажем, что-то вроде массива) в target-c. Я хочу, чтобы эта группа объектов была доступна везде в моем приложении (различные функции и т. Д.) Эта группа объектов должна быть готова к редактированию, так что NSArray (я полагаю) исключен? должно быть.

Я борюсь с концепциями и все еще ищу правильный способ сделать это, пытался форсировать некоторые глобальные массивы, но я думаю, что это не было хорошей практикой.

Любая помощь будет высоко оценена, спасибо. (Пожалуйста, будьте любезны, предоставьте дополнительное объяснение, почему я должен использовать это - ваше предложение - вместо чего-то еще. Таким образом, вы поможете мне лучше понять идею).

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

Если это группа объектов, которые должны быть общими для всего приложения, и вы хотите уклониться от глобальных переменных, то я думаю, у вас есть один хороший вариант:

Создавая и сохраняя коллекцию(это должен быть NSMutableArray, редактируемая версия NSArray) в вашем делегате приложения, он может быть доступен везде:

//MyAppDelegate.h
@property (nonatomic, retain) NSMutableArray *_editableArray;

//MyAppDelegate.m
- (void)applicationDidFinishLaunching {
    _editableArray = [[NSMutableArray alloc] init];
    // Add objects if you'd like
}

И тогда вы можете получить к нему доступ где угодно, например:

// In other classes
((CastToYourAppDelegateClass *)[NSApp delegate]).editableArray;

Имейте в виду , что если вы собираетесь обращаться к этому массиву / редактировать его в любом фоновом потоке (или использовать GCD), то вам необходимо убедиться, что доступ осуществляется правильносинхронизированы.(Вы планируете это сделать?)

0 голосов
/ 05 декабря 2011

Почему бы просто не реализовать шаблон Singleton для вашего общего объекта, для которого NSMutableArray будет одним из его свойств?

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