0

NSObjectクラスに渡すNSDictionaryがあり、そこですべての値をディクショナリから引き出して、正しいタイプに渡します。

たとえば、NSInteger、BOOL、NSString、charは、NSDictionaryから引き出して、それらの唯一の変数に入れる値のタイプです。

私の質問は、これらの値を1つの大きなオブジェクトに変換して、配列に配置できるようにするための最良の方法は何ですか?

クラス自体をオブジェクトとして使用できると聞きましたが、これを行う方法がよくわかりません。

または、それらをNSDictionaryに戻すことはできますか?...しかし、その場合、NSDictionariesは複数の値型を許可しますか?

4

3 に答える 3

3

実際、あなたは正しい道を進んでいます。これは基本的にMVCアーキテクチャの方法です。したがって、M=モデルについて質問しています。

この例のモデルは、すべての変数を定義するクラスです。要点を切り取って、これがあなたがすべきことです:

@property- >変数を含むクラスを作成します@synthesize。名前はClassAです。

次に、オブジェクトClassAを辞書に設定できます。

ClassA *myClass = [[ClassA alloc] init];
myClass.myString = @"test String";
myClass.myBoolean = True;

[dictionary setObject:myClass forKey:@"myObject"];
[myClass release]; //we no longer need the object because already retain in dictionary.

次に、次の方法で取得します。

ClassA *myClass = (ClassA*)[dictionary objectForKey:@"myObject"];
NSLog(@"this is value of myString : %@ & boolean : %i",myClass.myString,myClass.myBoolean);
于 2012-08-10T04:53:34.130 に答える
0

値のコレクションは、NSDictionary、NSArray、NSMutableArrayなどに配置できます。任意のコレクションタイプ。または、値/タイプの数が固定されている場合は、値/タイプごとにデータメンバーを持つクラスを作成し、その中に入れることができます。クラスソリューションは、多くのキャストを行う必要をなくしますが、値/タイプの数が固定されている場合にのみ機能します。

これがコレクションのAppleDocです。

于 2012-08-10T04:57:41.617 に答える
0

ええ、プロパティとして異なる値としてこれらを使用してクラス自体を作成できます。このオブジェクトを任意のクラスに渡すと、obj.propertyNameによってそれらの値にアクセスできます。このリードによってMVCパターンでモーダルを作成します。疑問がある場合はお知らせください。

 Test *object = [[Test alloc] init];
object.testBool=true;
object.testString=@"Test";
NSDictionary *passData = [[NSDictionary alloc] initWithObjectsAndKeys:object,@"testObject", nil];
Test *getObject = (Test*)[passData objectForKey:@"testObject"];
NSLog(@"%d",getObject.testBool);
NSLog(@"%@",getObject.testString);

テストクラスのinitメソッドをカスタマイズできます。

于 2012-08-10T05:14:02.980 に答える