Iphone 我可以动态修改设置包中的Root.plist吗?

Iphone 我可以动态修改设置包中的Root.plist吗?,iphone,objective-c,plist,root.plist,Iphone,Objective C,Plist,Root.plist,我的应用程序中有一个设置包。。包含根.plist的 现在我有一个屏幕,其中包含一个复选框。。 按下复选框时,我想更改plist中PSToggleSwitchSpecifier的DefaultValue键的BOOL值。 因为它是在运行时完成的。。我的问题是。。是否可以在运行时更改该文件?如果可以。。给出一个如何做的想法 下面是plist: <plist version="1.0"> <dict> <key>PreferenceSpecifiers

我的应用程序中有一个设置包。。包含根.plist的 现在我有一个屏幕,其中包含一个复选框。。 按下复选框时,我想更改plist中PSToggleSwitchSpecifier的DefaultValue键的BOOL值。 因为它是在运行时完成的。。我的问题是。。是否可以在运行时更改该文件?如果可以。。给出一个如何做的想法

下面是plist:

    <plist version="1.0">
<dict>
    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>DefaultValue</key>
            <string></string>
            <key>Key</key>
            <string>Username</string>
            <key>Title</key>
            <string>Username</string>
            <key>Type</key>
            <string>PSTextFieldSpecifier</string>
        </dict>
        <dict>
            <key>DefaultValue</key>
            <string></string>
            <key>IsSecure</key>
            <true/>
            <key>Key</key>
            <string>Password</string>
            <key>Title</key>
            <string>Password</string>
            <key>Type</key>
            <string>PSTextFieldSpecifier</string>
        </dict>
        <dict>
            <key>Type</key>
            <string>PSToggleSwitchSpecifier</string>    <-----toggleSwitch
            <key>Title</key>
            <string>Remember</string>
            <key>Key</key>
            <string>CheckBox</string>
            <key>DefaultValue</key>    <----- Default Value
            <false/>                   <---- want to change this value 
        </dict>
    </array>
    <key>Title</key>
    <string>Settings</string>
</dict>
</plist>

偏好说明符
默认值
钥匙
用户名
标题
用户名
类型
pstextfield说明符
默认值
安全
钥匙
密码
标题
密码
类型
pstextfield说明符
类型

PSToggleSwitchSpecifier您不能使用应用程序包修改文件。

因为设置包位于应用程序包中,您只能在编译时在运行时更改设置包

但是,您可以使用在运行时设置值,设置应用程序将自动反映这一点。不过,它将被保存在其他地方。您也可以通过
NSUserDefaults
以与使用设置捆绑包相同的方式将其读回


请注意,您不应该直接读取设置包,因为这没有任何意义。您应该始终使用
NSUserDefaults
获取和设置用户默认值。当用户在设置应用程序中进行更改时,
NSUserDefaults
将自动反映这一点。它们将始终保持同步。

有一篇同样的博文。这不是为root.plist写的。我想是的。正如Joshua所建议的,您不能修改应用程序包中的文件。我希望上面的链接对您有所帮助。-如果您有越狱iOS设备,并且您的应用程序正在/Applications directoryHey@Zaraki中运行,您可以修改应用程序捆绑包中的文件。您发现问题的原因了吗?您能告诉我如何使用NSUserDefaults写入设置捆绑包root.plist吗?我能够读取该文件,并且我想将应用程序中所做的修改更新为设置包中的Root.plist。