【问题标题】:How to write to AppName-Info.plist如何写入 AppName-Info.plist
【发布时间】:2013-04-02 05:45:05
【问题描述】:

我在我的 AppName-Info.plist 中手动添加了一个名为“App”的键,我可以通过调用此代码从中获取值

NSBundle *mainBundle;
mainBundle = [NSBundle mainBundle];

NSString *value = [mainBundle objectForInfoDictionaryKey:@"App"];

NSLog(@"App: %@",value);

但我不能用任何代码更改值.. 有可能吗?如果是的话怎么做?

提前感谢您的帮助:)

【问题讨论】:

  • 我认为不可能。因为 info-plist 文件是只读的 (?)。反正等别人的回答
  • 表示您想更改 info.plist 中的 App 对象值,如果这不是我认为的
  • 谢谢大家的回答:)
  • 如果其中一个答案已经满足了您的问题,请考虑将其作为已接受的答案进行检查。

标签: iphone ios objective-c xcode ipad


【解决方案1】:

这是不可能的。

默认情况下,AppName-Info.plist 不会在构建的 Copy Bundle Resources 阶段复制到包中。

因此,如果您想要一个可以写入选项的 plist,则可以在运行时在临时文件位置创建它并在那里读/写。

This 是研究如何做到这一点的好地方。

【讨论】:

    【解决方案2】:

    你应该考虑NSUserDefaults 或者如果你想修改一个捆绑的.plist试试这个。

        NSString* plistFilePath = nil;
    NSFileManager* manager = [NSFileManager defaultManager];
    if ((plistFilePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"mySpecial/PathTo.plist"])) 
    {
        if ([manager isWritableFileAtPath:plistFilePath]) 
        {
            NSMutableDictionary* infoDictioio = [NSMutableDictionary dictionaryWithContentsOfFile:plistFilePath];
            [infoDictio setObject:@"foo object" forKey:@"fookey"];
            [infoDictio writeToFile:plistFilePath atomically:NO];
            [manager setAttributes:[NSDictionary dictionaryWithObject:[NSDate date] forKey:NSFileModificationDate] ofItemAtPath:[[NSBundle mainBundle] bundlePath] error:nil];
        }
    }
    

    【讨论】:

    • 不赞成票(和赞成票)真的应该伴随着 cmets - 我承认我并不总是评论投票......
    • 但有时没有和我一样多的 cmets.. :) 无论如何,我分享一些东西,有些人明白了,这更重要 :)
    • 正如另一条评论中提到的,AppName-Info.plist 不包含在包中,因此不可写。但是,Info.plist 包含在内并且是可写的。在这种情况下,这种方法效果很好。
    【解决方案3】:

    您不应在运行时修改您的应用程序 Info.plist 文件(或应用程序包中的任何内容)。这是不好的做法,还会破坏您的 bundles 代码签名(这将导致无法再启动应用程序!)。

    如果你想存储设置,你应该看看NSUserDefaults

    【讨论】:

    猜你喜欢
    • 2013-10-20
    • 2010-10-01
    • 1970-01-01
    • 2020-04-10
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多