我在应用的设置包中定义了多值设置(位置) 标题被定义为长标题,例如,"伦敦"并且设置的相应值部分定义为" 1"。
[编辑]
要展开此问题,我将添加有关多值设置的更多信息:
如何检索项目0处的LONDON标题。如上所述,当我检索objectForKey或valueForKey时,我总是得到1。我想显示字符串" LONDON"来自应用程序标签中的标题,但在核心数据中使用值1。注意:我在应用程序运行之前已在设置中设置了值,因此它确实返回一个值,但值始终为1,因为标题似乎无法访问。
答案 0 :(得分:12)
您应将“默认值”值设置为“1” - 只需从“值”列表中选择第0项。
答案 1 :(得分:4)
我遇到了类似的情况并回答了它可以帮助某人的问题。
如果我正确理解了这个问题,当用户从设置中选择伦敦时,默认值将为1.当您读取locationSetting的设置包时,您获得值1而不是伦敦,但是您想要" LONDON& #34;在你的代码而不是1.你的plist的当前结构是不可能的。使默认值为字典而不是字符串,然后您可以在该字典中包含标题和值。然后,您可以检索所选值的文本。
答案 2 :(得分:2)
位置设置为多值,是NSDictionary。因此,请执行以下操作:
NSDictionary *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"locationSettings"];
NSString *value = (NSString *)location;
将位置值转换为NSString,因为您知道要返回一个字符串。
然后,您可以将结果作为字符串处理。 "值"返回的变量是值部分中写入的内容。在您的情况下,如果您选择"伦敦",您将获得" 1"以字符串的形式返回。
答案 3 :(得分:0)
如果我对您的问题的理解是正确的,那么您就会问如何获取用户所选值的位置字典的Key条目。
对于词典,没有这样的一次性使用方法。
但是有一种方法可以通过操纵allKeys
来实现相同的结果,如下所示:
NSDictionary *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"locationSettings"];
NSArray *keys = [location allKeys];
NSString *locationIdentifier = [keys objectForIndex:[location valueForKey:@"LONDON"]];
这会导致"LONDON"
字符串存储在locationIdentifier
变量中。
所以最后一行,字符串的赋值,可能会改为简单地改为objectForIndex:0
,但这不是我以前尝试过的,所以我不确定。