繁体   English   中英

设置捆绑包不更改结果

[英]Settings Bundle Not Changing Results

我的设置捆绑选项有困难,无法在应用程序中更改设置。

我的Plist的结构如下。

我的Plist的结构如下

在我viewDidLoad方法中,我有以下:

lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 80)];
lbl.backgroundColor = [UIColor clearColor];
lbl.textColor = [UIColor whiteColor];
lbl.text = @"Hello World";
lbl.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:lbl];
[lbl release];

BOOL changeBG = (BOOL)[[NSUserDefaults standardUserDefaults] valueForKey:@"cellSwitched"];
if (changeBG) {
    lbl.textColor = [UIColor redColor];
} else {
    lbl.textColor = [UIColor blackColor];
}

标签将变为黑色,但从不变为红色。 我尝试重新启动设备/重新安装应用程序。 开关似乎没有作用。

据我所知

(BOOL)[[NSUserDefaults standardUserDefaults] valueForKey:@"cellSwitched"]

会始终返回NO,因为我怀疑您的字典中没有名为cellSwitched的键。 它在属性列表中显示为名为key的键的值。

在您的plist中添加一个名为cellSwitched的键,并将其设置为Boolean类型,并将其值为YESNO

代码应为:

BOOL changeBG = [[NSUserDefaults standardUserDefaults] boolForKey:@"cellSwitched"];

您正在滥用valueForKey并错误地投射结果。

当前,“ cellSwitched”是字典中NSString的内容,在“ key”的键下...

您想在左侧栏中而不是右侧栏中输入“ cellSwitched”。 此条目的类型应为BOOL,而不是字符串(中间列),并且在右侧列中的值为YES或NO ...

另外,您如何将此plist复制到NSUserDefaults中? 捆绑包中有一个plist文件并进行复制是不寻常的,通常,根据我的经验,大多数开发人员会在运行时将单个小对象设置为[NSUserDefaults standardUserDefaults]。 您是否知道捆绑软件中的plist文件是只读的? 我假设您正在将此文件加载到NSDictionary,然后将其保存在沙箱中的某个位置,以便对该文件具有读/写权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM