Когда вызывается encodeWithCoder? - PullRequest
5 голосов
/ 18 сентября 2010

Это сохранит массив (я думаю).

- (void)encodeWithCoder:(NSCoder *)encoder {
    [encoder encodeObject:myArray forKey:@"myArray"];
}

Должен ли я напрямую вызывать этот метод, когда я хочу сохранить массив, или я должен сделать что-то еще?

1 Ответ

8 голосов
/ 18 сентября 2010

Вы не вызываете этот метод напрямую. Он вызывается подклассом NSCoder, если ему нужно сериализовать этот объект. Если вы хотите закодировать граф объектов, используйте методы класса archivedDataWithRootObject: или archiveRootObject:toFile: из NSKeyedArchiver. Это в свою очередь вызовет метод encodeWithCoder: ваших объектов. Также обратите внимание, что каждый объект в вашем массиве должен реализовывать протокол NSCoding.

...