iOS

2012-06-13, ios

構造体をリストやディクショナリに入れる

構造体はオブジェクトではなく、プリミティブ型の集合なので、そのままではNSArrayやNSDictionaryに入れることができません。そういう場合の便利なラッパとしてNSValueというクラスが存在しています。

例えばCGPoint(構造体)の値をNSValueに格納するには以下のように記述します。

CGPoint p1 = CGPointMake(1,2);
NSValue *v = [NSValue value:&p1 withObjCType:@encode(CGPoint)];

格納された値を取り出す場合は、以下のようになります。

CGPoint p2;
[v getValue:&p2];

参考URL

この記事は役に立ちましたか?