Это сохранит массив (я думаю).
- (void)encodeWithCoder:(NSCoder *)encoder { [encoder encodeObject:myArray forKey:@"myArray"]; }
Должен ли я напрямую вызывать этот метод, когда я хочу сохранить массив, или я должен сделать что-то еще?
Вы не вызываете этот метод напрямую. Он вызывается подклассом NSCoder, если ему нужно сериализовать этот объект. Если вы хотите закодировать граф объектов, используйте методы класса archivedDataWithRootObject: или archiveRootObject:toFile: из NSKeyedArchiver. Это в свою очередь вызовет метод encodeWithCoder: ваших объектов. Также обратите внимание, что каждый объект в вашем массиве должен реализовывать протокол NSCoding.
NSCoder
archivedDataWithRootObject:
archiveRootObject:toFile:
NSKeyedArchiver
encodeWithCoder:
NSCoding