我有一个从属UIPicker
,它将值从plist加载到它的两个组件中。它是一个NSDictionary
,其中包含NSArrays
个字符串。用户选择一对组件,选择器将这两个字符串发送回委托。我真正需要的是一个与每个人选择一致的常数。例如,第一个组件是A,B,C,每个选项有三个子选项A1,A2,A3等...用户选择ChoiceA和ChoiceA3,选择器返回两个字符串,但是我有一个关联的数字常量使用A-A3,这就是我在程序中实际需要的数学。
我可以将两个与特定键关联的内容 - 字符串和数字?我想我想要的是一个键值对(三元组)?似乎在我的程序中使用逻辑来根据返回的键值对分配一个值,从而破坏了首先使用plist的目的。
答案 0 :(得分:1)
理想的结构实际上是有一本字典词典。
A = {
A1 = 36;
A2 = 42;
A3 = 89;
};
B = {
B1 = 64;
...
plist只是(序列化)格式的集合。我不知道它是如何被击败的。
要存储键值,您有两个选择。
(1)创建一个新类。
@interface StringNumberPair : NSObject {
NSString* strval;
int intval;
}
@property(copy) NSString* strval;
@property(assign) int intval;
-(id)initWithString:(NSString*)strval_ integer:(int)intval_;
@end
...
[theDict setObject:[[[StringNumberPair alloc] initWithString:@"string"
integer:42] autorelease]
forKey:@"key"];
(2)将值设为数组:
[theDict setObject:[NSArray arrayWithObjects:
@"string", [NSNumber numberWithInt:42], nil]
forKey:@"key"];
或字典:
[theDict setObject:[NSDictionary dictionaryWithObjectsAndKeys:
@"string", @"strval",
[NSNumber numberWithInt:42], @"intval",
nil]
forKey:@"key"];
答案 1 :(得分:0)
你说你的值是一串字符串吗?
因此您可以将数字常量转换为字符串
[NSString stringWithFormat:@"%d"numericConstant]
并将其添加到数组中。
从词典
获取时将其转换回int[stringConstant intValue]