Как сохранить список изображений в Objective-C - PullRequest
0 голосов
/ 08 января 2012

В моем коде есть элемент, представляющий собой список чередующихся строк и изображений, которые я хочу сохранить.Я знаю, как сохранять отдельные изображения в их представлениях в формате JPEG, но есть ли простой и эффективный способ, которым я не знаю в Objective-C, чтобы сохранить все эти элементы (или, по крайней мере, изображения, поскольку я могу обрабатывать строки самостоятельно), покаподдержание их порядка?

ex: item 1 («hi», image, «how», image, «are», image), item2 («this», image, «is», image)

поддержание порядка элементов для меня не важно, но порядок в списке.Первое, что приходит на ум, - это просто сохранить каждое изображение и создать алгоритм для его создания, затем запомнить его имя и имя, а затем сохранить и загрузить текстовый список.Есть ли более простой способ сделать это?Могу ли я буквально просто сохранить сам массив в виде списка и быть на моем веселом пути?(я видел только примеры со строками)

1 Ответ

0 голосов
/ 08 января 2012

Мне кажется, я понимаю, для чего ты идешь. Вы хотели бы сохранить массив элементов, каждый из которых содержит массив объектов, которые содержат изображение и строку. Если это верно, значит, идея сохранения массива в plist верна.

Короче говоря, вы создали бы NSDictionaries ваших объектов и сохранили их массив. Вот так:

В вашем объекте у вас будет метод, подобный следующему:

- (NSDictionary *)dictionaryOfItemData;
{
    NSMutableDictionary * mutableDictionary = [[NSMutableDictionary alloc] init];


    [mutableDictionary setObject:imageName 
                          forKey:@"imageName"];

    [mutableDictionary setObject:UIImagePNGRepresentation([self image]) 
                          forKey:@"imageData"];


    return mutableDictionary;
}

Затем вы бы сохранили их массив (или массив массивов, или что угодно, исходя из размера файла, необходимости загрузки и т. Д.), Например, в нужном месте:

[[arrayOfDictionaries description] writeToFile:path
                                    atomically:YES 
                                      encoding:NSUTF8StringEncoding 
                                         error:NULL];

Что дает вам список того, что вы можете загрузить и увлажнить, создав свое изображение с данными и установив имя изображения из словаря.

~ Удачи

...