2

我是新来的。希望可以有人帮帮我!

我正在创建一个调整,其中我添加了 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 或使用第二个,然后以我需要的方式复制这些行,对我来说无关紧要。

4

1 回答 1

0

像这样。

  1. 创建一个新的 .plist 文件并作为属性列表打开。

  2. 单击 + 以创建一个新的属性内部信息属性列表。

  3. 将您的属性命名为,例如“文本”设置类型为“数组”。

  4. 在上面创建的数组中添加新项目,并为每个项目输入您的文本。

  5. 现在在您的视图控制器类中,您必须这样做。

        //ViewController.h
    
        @property (nonatomic,strong)NSArray *plistDataArr;
    
       //ViewController.m
    
    
     -(NSArray*) plistDataArr
      {
        if(! _plistDataArr)
        {
          NSString *filePath = [[NSBundle mainBundle]pathForResource:@"YOUR Plist file name" ofType:@"plist"];
         _plistDataArr = [NSArray arrayWithContentsOfFile:filePath];
        }
      return _plistDataArr;
    
       }
    
      //viewDidLoad
    
      NSMutableArray *tempArr=[NSMutableArray arrayWithArray:self. _plistDataArr];
    
于 2016-04-13T05:08:14.913 回答