Как я могу обновить имя в plist? - PullRequest
1 голос
/ 09 августа 2011
<plist version="1.0">
<dict>
<key>accounts</key>
<array>
    <dict>
        <key>name</key>
        <string>OLDNAME</string>
    </dict>
</array>
</dict>

Это файл списка

Ответы [ 2 ]

2 голосов
/ 09 августа 2011

Может быть, это будет слишком очевидно, но вы можете использовать следующие способы его изменения:

  1. Перейдите в TextEdit и измените содержимое между
  2. В двойном щелчке Xcode, чтобы добавить в список файлови отредактируйте его с помощью редактора plist, который предоставляет более удобный пользовательский интерфейс для редактирования plist.
  3. Напишите код ObjectiveC с использованием классов NSKeyedArchiver и NSKeyedUnarchiver для загрузки, изменения и сохранения словаря.

Идеальное решение для работы со словарями, хранящимися в списках:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@ "plist"];
NSDictionary *plistDictionary = [NSDictionary dictionaryWithContentsOfFile:plistPath];
[plistDictionary setValue:@"newName" forKey:@"testKey"];
[plistDictionary writeToFile:plistPath atomically:YES];

Надеюсь, вы примете этот пример кода для своих собственных нужд.

... Хорошо, я получил его, вот пример кодадля вашей конкретной структуры plist:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"yourPlist" ofType:@ "plist"];
NSMutableDictionary *plistDictionary = [[NSDictionary dictionaryWithContentsOfFile:plistPath] mutableCopy];
NSMutableArray *accountsArray = [(NSArray *)[plistDictionary valueForKey:@"accounts"] mutableCopy];
NSMutableDictionary *accountDictionary = [(NSDictionary *)[accountsArray objectAtIndex:0] mutableCopy];

[accountDictionary setValue:@"NewName" forKey:@"name"];
[accountsArray replaceObjectAtIndex:0 withObject:accountDictionary];
[plistDictionary setValue:accountsArray forKey:@"accounts"];

[plistDictionary writeToFile:plistPath atomically:YES];
0 голосов
/ 09 августа 2011

У Apple много документов по теме.

Вот один, который должен помочь:

http://developer.apple.com/library/mac/#documentation/CoreFoundation/Conceptual/CFPropertyLists/CFPropertyLists.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...