配列を作成する簡単な方法を次に示します。
NSString* string = @"first/second/third/fourth";
NSArray* arr = [[string componentsSeparatedByString:@"/"] retain];
しかし、あなたの質問によりよく答えるために、単純な NSPredicate を使用して値を抽出することで簡単にフィルター処理できるため、辞書の配列を使用します。これが例です。最初に、文字列/値のペアごとに辞書を作成し、それらを配列に入れることにより、辞書の配列を作成します...
NSDictionary* d1 = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"first", [NSNumber numberWithInteger:1], nil] forKeys:[NSArray arrayWithObjects:@"string", @"value", nil]];
NSDictionary* d2 = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"second", [NSNumber numberWithInteger:2], nil] forKeys:[NSArray arrayWithObjects:@"string", @"value", nil]];
NSDictionary* d3 = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"third", [NSNumber numberWithInteger:3], nil] forKeys:[NSArray arrayWithObjects:@"string", @"value", nil]];
NSArray* stringsAndValues = [[NSArray alloc] initWithObjects:d1, d2, d3, nil];
UIPicker のある時点で、文字列値が返されます。NSPredicate で値を簡単に取得する方法を次に示します。この場合、「2番目」が選択されたと仮定します...
NSString* stringValue = @"second";
NSPredicate* thePred = [NSPredicate predicateWithFormat:@"string == %@", stringValue];
NSArray* a = [stringsAndValues filteredArrayUsingPredicate:thePred];
NSInteger value = [[[a objectAtIndex:0] valueForKey:@"value"] integerValue];