我是新来的。希望可以有人帮帮我!
我正在创建一个调整,其中我添加了 AppList (Ryan Petrich) 并开始工作,所以我在我的偏好中将一个链接单元与所有应用程序捆绑在一起,并为每个应用程序打开/关闭一个开关。
当我打开其中的一些时,它会在首选项 .plist 中保存一个<key>ALvalue-com.some.app</key>
和一个值。<true/>
我试图弄清楚如何将“key”“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 或使用第二个,然后以我需要的方式复制这些行,对我来说无关紧要。