Я новичок здесь. Надеюсь, кто-нибудь может мне помочь!Как написать строку внутри массива .plist-файла
Я создаю настройку, в которой добавлен и работает приложение AppList (Райан Петрич), поэтому у меня есть в моем распоряжении набор ссылок со всеми приложениями и включение/выключение для каждого приложения.
Когда я переключаю некоторые из них, он сохраняет <key>ALvalue-com.some.app</key>
и значение <true/>
в настройках .plist.
Я пытаюсь понять, как я могу изменить эту структуру «ключ» «boolValue», чтобы быть похожим на это:
AL-hd.plist файл
<dict>
<key>AL-hd</key>
<array>
<string>com.apple.AppStore</string>
<string>com.apple.gamecenter</string>
<string>com.apple.stocks</string>
</array>
</dict>
</plist>
Вместо этого
<dict>
<key>ALvalue-com.apple.AppStore</key>
<true/>
<key>ALvalue-com.apple.gamecenter</key>
<true/>
<key>ALvalue-com.apple.stocks</key>
<true/>
</dict>
</plist>
Это мой AppList .plist, который сохраняет предпочтение файла AL-hd.plist:
<dict>
<key>cell</key>
<string>PSLinkCell</string>
<key>bundle</key>
<string>AppList</string>
<key>isController</key>
<string>1</string>
<key>label</key>
<string>Show apps</string>
<key>icon</key>
<string>Favorites.png</string>
<key>ALAllowsSelection</key>
<string>1</string>
<key>ALChangeNotification</key>
<string>com.your.companyChanged</string>
<key>ALSectionDescriptors</key>
<array>
<dict>
<key>footer-title</key>
<string>Check what apps you want to show up</string>
<key>items</key>
<array/>
</dict>
<dict>
<key>cell-class-name</key>
<string>ALCheckCell</string>
<key>icon-size</key>
<string>29</string>
<key>suppress-hidden-apps</key>
<string>1</string>
<key>title</key>
<string>All Applications</string>
</dict>
</array>
<key>ALSettingsKeyPrefix</key>
<string>ALvalue-</string>
<key>ALSettingsPath</key>
<string>/var/mobile/Library/Preferences/AL-hd.plist</string>
</dict>
Я много ищу и стараюсь сто вещей.
Спасибо!
Одна вещь, которую я пытаюсь сделать, это создать второй .plist и попробовать позже скопировать эти ключи и вставить его как строку во втором файле. И добавить кнопку в комплекте привилегированного с этим действием в .mm файл (без везения):
- (void)save
{
NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier];
// Either this or whatever works from link after this
NSString *prefPath = @"/User/Library/Preferences/com.your.company.plist";
NSString *showPath = @"/User/Library/Preferences/AL-hd.plist";
NSMutableDictionary *plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:prefPath];
NSMutableArray *show = [[NSMutableArray alloc] initWithContentsOfFile:showPath];
if ([[plistDict objectForKey:bundleID] boolValue]) {
[Show addObject:bundleID];
}
}
Для меня это не имеет значения, если я использую предпочтение расслоение .plist или использовать второй, а затем скопировать те строки, которые мне нужны.
Неясно, что ваша проблема. Вам нужно хотя бы показать свой код и объяснить, как он работает по-другому, что вам нужно, может быть, кто-то может вам помочь. Измените свой вопрос, не пытайтесь добавить материал в комментарии. – CRD
Вы хотите объединить 2 файла plist в один? – phi
Нет, я отредактировал ответ, чтобы быть более ясным ... Извините, мой английский! – Olivier