как создать точную копию plist в каталоге документов

мой plist в папке ресурсов выглядит следующим образом:

{
    Games = (yz, def, uv);
    Entertainment = (rst, opq, lmn);
    Utilities = (ghi, def, abc);
 }

После создания этого plist в каталоге документов он изменится на:

{
    Entertainment = (rst, opq, lmn); 
    Games = (yz, def, uv); 
    Utilities = (ghi, def, abc);
}

т.е. поле plist становится отсортированным по алфавиту.

можете ли вы помочь мне сделать точную копию plist в папке документов.


person Aparna Rithu    schedule 12.11.2012    source источник
comment
Что вы подразумеваете под «сделать точную копию plist в папке документов»?   -  person sunkehappy    schedule 12.11.2012
comment
[[NSFileManager defaultManager] copyItemAtPath:‹#(NSString *)#› toPath:‹#(NSString *)#› error:‹#(NSError **)#›];   -  person priyanka    schedule 12.11.2012
comment
@sunkehappy: точная копия plist означает, что порядок полей в обоих списках должен быть одинаковым.   -  person Aparna Rithu    schedule 12.11.2012
comment
Почему для вас так важна последовательность в файле plist? Разве сортировка по алфавиту не намного лучше, чем несортировка?   -  person sunkehappy    schedule 12.11.2012


Ответы (1)


Это происходит потому, что plist хранит свои значения по ключам в неопределенном порядке. На самом деле, если вы сохраняете некоторые значения в NSDictionary последовательно, а затем регистрируете [dictionary allKeys], не гарантируется, что значения будут отображаться в том же порядке, в котором они были введены в словарь, потому что они, вероятно, обрабатываются как NSSet даже если allKeys равно NSArray. Итак, вы можете сохранить каждое значение в NSArray в нужном вам порядке, например:
индекс 0 -> Игры
индекс 1 -> Развлечения
индекс 2 -> Утилиты.

person Mat    schedule 12.11.2012