Наиболее подходящий подход для сохранения элемента в массив одновременно с его добавлением - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть массив элементов, которые нужно сохранять в файл каждый раз, когда элемент добавляется / удаляется из него. Вместо того чтобы делать что-то вроде класса менеджера, сделайте это, то есть в псевдокоде:

- (void) SomeManager:addItem(Item*) item {
      [someArray addObject: item];
      save someArray to file;

Я бы предпочел, например, сделать что-то вроде извлечения пользовательского класса из изменяемого массива и переопределить addObject для дополнительного сохраните его в файл (возможно, используя NSCoding / NSKeyedArchiver).

Не рекомендуется наследовать от NSMutableArray, поэтому вам интересно, каковы предложения для наиболее подходящего и простого способа достижения этого?

Приложение использование этого массива представляет собой смесь Swift и Obj- C, поэтому решение должно быть мостовым между ними. У меня нет предпочтения, если какие-либо объявления / реализации класса выполняются в Swift или Obj- C.

1 Ответ

0 голосов
/ 08 апреля 2020

Вы можете создать класс и назвать его DataHolder, DataContainer, DataStore и др. c.

@interface DataStore : NSObject

- (NSArray*)data;

- (void) add:(id)object toIndex:(NSUInteger)index;
- (void) removeFromIndex:(NSUInteger)index;
- (id) getAtIndex:(NSUInteger)index;

@end

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

- (void) initWithData:(NSArray *)data
...