2010-11-25 15 views
0

私は列挙型の性別を持っていますが、これをピッカービュー内のビューで使用するために文字列値に関連付ける必要があります。それはココアタッチのフレームワークであり、目的語は言語です。 他のフレームワークで行われたように、ピッカービューのデータソースを列挙として設定する方法はわかりません。だから、私は列挙型の値を配列しなければならないと言われてきました。 NSMutableDictionaryにそれぞれの文字列値でthosを追加しようとしました。 だから私はobjective-c文字列値をキーとして列挙配列を作成する方法は?

NSArray* genderKeys = [NSArray arrayWithObjects:@"Male",@"Female",nil] ; 
NSArray* genderValues = [NSArray arrayWithObjects:[NSNumber numberWithInt:male],[NSNumber numberWithInt:female],nil]; 

for(int i =0;i<[genderKeys count];i++) 
    [_genderDictionary setValue:[genderValues objectAtIndex:i] forKey:[genderKeys objectAtIndex:i]]; 

になってしまった、働いて、それが有効なキーではないと言っていない、と私は、キーコードの記事を読んで、私は今何の鍵だといただきました!キーパスを知っているが、それでも私はどのように解決することができますそれ。それは私の人生を台無しにしている、助けてください。

申し訳ありませんが、私は_genderDictionary.ButのためにNSDictionaryを使用していましたが、私はそれがnsmutableであったということを思い出しました。皆さん、ありがとうございました。

答えて

0

。これを実行すると(コンパイルするために最初の行が追加されたコード)、正常に動作しているようです。

NSMutableDictionary *_genderDictionary = [NSMutableDictionary dictionary]; 
NSArray* genderKeys = [NSArray arrayWithObjects:@"Male",@"Female",nil] ; 
NSArray* genderValues = [NSArray arrayWithObjects:[NSNumber numberWithInt:1],[NSNumber numberWithInt:2],nil]; 

for(int i =0;i<[genderKeys count];i++) 
    [_genderDictionary setValue:[genderValues objectAtIndex:i] forKey:[genderKeys objectAtIndex:i]]; 

のNSLog() - _genderDictionaryこの

{ 
    Female = 2; 
    Male = 1; 
} 

編集出力する。さ...再読み込みあなたの質問を、私は何を探していることはUIPickerViewのデリゲートメソッドであると思わせるの–pickerView:titleForRow:forComponent:を実装ピッカーに表示されるテキストを設定します。あなたが性別のNSArrayを持っているなら、return [_genderArray objectAtIndex:row];のようなやり方をするでしょう。そうすれば、あなたは辞書とキーで大騒ぎする必要はありません。

edit 2:ピッカーのデータソースをNSArrayまたはNSDictionaryに直接することはできません。それは、UIPickerViewのデータソース/デリゲートプロトコル(NSArrayのサブクラスで行うことができますが、それはcah-ray-zayです)を実装するオブジェクトでなければなりません。

0

私が正しく理解していれば、事前入力済みの辞書を作成しようとしています。
これには[NSDictionary dictionaryWithObjectsAndKeys:]を使用できます。私の作品

[NSDictionary dictionaryWithObjectsAndKeys: 
    [NSNumber numberWithUnsignedInt:0], @"Male", 
    [NSNumberWithUnsignedInt:1], @"Female", nil] 
2

データベースのキーとしてUIテキストを使用するように注意してください。アプリケーションをフランス語、中国語、アラビア語などにローカライズする必要がある場合はどのくらいの額ですか?

+1

辞書キーは、実際にユーザーに公開されるべきではありません。それはベースアックであるので、言語の問題のためではありません。キーは、データそのものではなく、データの取得に使用するものです。 –

関連する問題