Копирование экземпляра синглтона для хранения в массиве - PullRequest
0 голосов
/ 06 декабря 2011

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

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

1 Ответ

4 голосов
/ 06 декабря 2011

Это не единственный объект, который вам нужен.
Один объект must always возвращает same instance.
То, что вам нужно, - это обычный класс, который может иметь метод вспомогательного класса, чтобы предоставить вам какой-то предварительно заполненный объект.,

Если возможно создать более одного экземпляра объекта, он больше не является одноэлементным.

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


Я не уверен, куда вы идете с этим, и если это лучший путь, но вот идея:

вы можете иметьsingleton класс, который будет содержать массив другого класса.Таким образом, вы можете назвать свой singleton следующим образом:

TheSingletonClassName *mySingleton = [TheSingletonClassName sharedTheSingletonClassName];
OtherClass *myOtherClass = [mySingleton newOtherClassInstancePlease];

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

NSArray *otherClassArray = [mySingleton allOtherClasses];

Или NSMutableArray, если вы предпочитаете.

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

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