Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 设置包不更改结果_Ios_Iphone_Objective C_Sdk - Fatal编程技术网

Ios 设置包不更改结果

Ios 设置包不更改结果,ios,iphone,objective-c,sdk,Ios,Iphone,Objective C,Sdk,我的设置捆绑选项和更改应用程序中设置的能力有困难 我的Plist的结构如下 在我的viewDidLoad方法中,我有以下内容: lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 80)]; lbl.backgroundColor = [UIColor clearColor]; lbl.textColor = [UIColor whiteColor]; lbl.text = @"Hello World"; lbl.textAli

我的设置捆绑选项和更改应用程序中设置的能力有困难

我的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,因为我怀疑您的字典中没有名为的键。它在属性列表中显示为名为key的键的值

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

代码应为:

BOOL changeBG = [[NSUserDefaults standardUserDefaults] boolForKey:@"cellSwitched"];
您正在误用valueForKey并错误地转换结果

“cellSwitched”是当前词典中“key”键下NSString的内容

您希望将“cellSwitched”放在左侧列,而不是右侧列。此条目的类型应为BOOL not string(中间列),右侧列的值应为YES或NO


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

我的plist中的“key”空间不会将其放入我的dictionary中。嗯?似乎还是不起作用。我是否误用了plist中的键?您如何将plist中的信息输入到
NSUserDefaults