Ios 使用plist中的文本命名NSUserDefault
我想将一个值保存到NSUserDefaults,但我希望它的存储位置的名称基于从plist文件中获取的字符串值 例如,plist字典可能包含字符串apple、banana、orange,我希望将NSUserDefaults保存为以下内容:storedapple、storedbanana、storedorange 是否有一种方法可以创建必要的代码,以有效地结束以下代码(其中“storedapple”、“storedbanana”和“StoredRange”是使用plist中的“stored”和字符串值以编程方式创建的): 假设字符串作为字符串值存储在plist设置中,我如何从plist中提取该字符串,如下所示:Ios 使用plist中的文本命名NSUserDefault,ios,nsuserdefaults,Ios,Nsuserdefaults,我想将一个值保存到NSUserDefaults,但我希望它的存储位置的名称基于从plist文件中获取的字符串值 例如,plist字典可能包含字符串apple、banana、orange,我希望将NSUserDefaults保存为以下内容:storedapple、storedbanana、storedorange 是否有一种方法可以创建必要的代码,以有效地结束以下代码(其中“storedapple”、“storedbanana”和“StoredRange”是使用plist中的“stored”和字符
<array>
<dict>
<key>fruit</key>
<string>apple</string>
<key>key1</key>
<string>data1</string>
</dict>
<dict>
<key>fruit</key>
<string>banana</string>
<key>key2</key>
<string>data2</string>
</dict>
</array>
使用
for (NSDictionary * yourDictionary in yourArray)
[standardUserDefaults setObject:yourDictionary[@"price"] forKey:[NSString stringWithFormat:@"stored%@",yourDictionary[@"fruit"]];
}
NSUserDefaults是一个类似于NSDictionary的容器,但具有稍微不同的规则,它会随着时间的推移持续存在,包括应用程序启动。它可以包含具有名称(键)和对象(值)的项。任何值都可以单独访问、添加或更改。它实际上是为了保存应用程序的用户选项,但也可以用于其他用途
设置、访问和修改NSUserDefaults
项的示例:
NSUserDefaults*默认值=[NSUserDefaults standardUserDefaults]代码>
要添加单个项目:
[默认设置setObject:@3 forKey:@applePrice]代码>
要访问单个项目:
intprice=[[defaults valueForKey:@“applePrice”]intValue]代码>
要修改单个项目:
[默认设置setObject:@4 forKey:@applePrice]代码>[NSString stringWithFormat:];???对人做一点研究。plist是否在NSArray
?[yourDictionary objectForKey:key]
更简单地说:yourDictionary[key]
Flexicoder:这似乎非常接近,但我得到了一个错误:“NSArray”的@interace声明了选择器“objectForKey:”@MarkStoneham当你提出最初的问题时,你没有提到它是在数组中。对不起,我已经发布了示例plist。代码需要更改吗?稍加调整以适应我的代码,这就是答案。:)唯一的问题是,这会创建所有NsUserDefaults,而我只希望一次创建特定的NsUserDefaults。如何调整代码来实现这一点?有一个NSUserDefaults可以用于不同的事情,只是对每个独特的用法使用不同的键。对不起,可能没有正确解释我自己。此时,代码循环并创建所有NSUserDefaults(即storedapple、storedbanana、StoredRange),并将它们的值都设置为5(请参阅我在第一次后期编辑中添加的代码)。我希望能够做到的是一次只针对其中一个NSUserDefaults(即,只针对storedbanana并为其指定一个特定值)。这更有意义吗?NSUserDefaults
是一个类似于NSDictionary
的容器,但其规则略有不同,并且随着时间的推移会持续存在,包括应用程序启动。它可以包含具有名称(键)和对象(值)的项。任何值都可以单独访问、添加或更改。它实际上是为了保存应用程序的用户选项,但也可以用于其他用途。我在回答中添加了一些示例代码。
for (NSDictionary *dict in tableData) {
NSString *key = [NSString stringWithFormat:@"stored%@", dict[@"fruit"]];
[standardUserDefaults setObject:[NSNumber numberWithInt:5] forKey: key];
[standardUserDefaults synchronize];
for (NSDictionary * yourDictionary in yourArray)
[standardUserDefaults setObject:yourDictionary[@"price"] forKey:[NSString stringWithFormat:@"stored%@",yourDictionary[@"fruit"]];
}
for (NSDictionary* dict in yourArray) {
NSString *price = dict[@"price"];
NSString *key = [NSString stringWithFormat:@"stored%@", dict[@"fruit"]];
[standardUserDefaults setObject: price forKey: key];
}