Ну, это не проблема "наилучшей практики" для любого случая.
Структура данных, которую я буду использовать, содержит набор строк, массив и ссылку на изображение.
Как вы думаете, что лучше всего хранить эти данные, не входя в CoreData?
Для ваших нужд я советую вам заглянуть в NSKeyedArchiver
.
NSString
, NSArray
и UIImage
все знают, как кодировать и декодировать себя. Просто используйте NSKeyedArchiver
. Обратите внимание, что объекты в ваших коллекциях (например, NSArray
) должны принимать @protocol NSCoding
.
Если вам нужно открыть это на компьютере Mac, преобразуйте UIImage
в NSData
, используя правильное представление формата файла изображения (например, PNG или JPEG), поскольку UIImage
недоступно.
Подробнее:
жесткое кодирование
Это может означать несколько вещей.
файл списка
Вы работаете с большими типами без списков. Это будет означать, что вам нужно будет без необходимости конвертировать в UIImage
<-> NSData
и обратно, что приведет к большим накладным расходам - памяти, процессору и, возможно, размеру файла. Все эти типы могут кодировать себя лучше (или даже лучше) представления plist.
какой-то файл с разделителями-запятыми
Ваше изображение не позволит этому произойти (надежно).