我是新來的。希望可以有人幫幫我!如何在.plist文件數組內寫入字符串
我正在創建一個調整,其中我有AppList(Ryan Petrich)添加和工作,所以我在我的首選項中捆綁了所有應用程序的linkcell和每個應用程序的開關。
當我切換其中的一部分時,它會在首選項.plist中保存<key>ALvalue-com.some.app</key>
和值<true/>
。
我試圖找出如何更改「鍵」「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