Вы архивируете массив NSMutable NSImage.Эти два класса соответствуют протоколу NSCoding, требуемому NSKeyedArchiver, поэтому я не вижу, где будет ваша проблема.
Итак, вот много идей для тестирования.
Во-первых, вы уверены, что данныеВы думаете, что действительны?В своем первом фрагменте кода вы пишете [NSData dataWithContentsOfFile:@"0.png"]
.Этот метод ожидает абсолютный путь к файлу.
Предполагая, что проблема не в вашем коде, просто в вашем вопросе, давайте продолжим:
У вас есть что-то отличное от nil в переменных данных после вашегоархивирование?Т.е. после присвоения данным можно добавить этот код.Если утверждение не выполнено, вы получите исключение во время выполнения:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
NSAssert(nil != data, @"My object data is nil after archiving");
Если проблема была не в этом, что означает возврат строки [data writeToFile:path options:NSDataWritingAtomic error:&error];
(Не ошибка переменной, авернуть значение вызова метода - writeToFile: options: error:
)
Что произойдет, если вы упростите свой код и просто сделаете это:
result = [NSKeyedArchiver archiveRootObject:data
toFile:archivePath];
Если все было в порядке, вы пытались разархивировать свойфайл с помощью NSKeyedUnarchiver?