今回はCGPointをNSMutableDictionaryに格納しようとして悩んでおりました。
NSArray,NSDictionaryに格納できる値はNSObjectのサブクラスである必要があるそうなのです。
CGPointやCGRect等の構造体はNSObjectのサブクラスではない為そのまま格納はできないようなのです。
そのため格納する際はNSValueを使って格納して取り出す際にCGPoint等の辺りにキャストして使うみたいです。
NSValueはNSObjectのサブクラスではない構造体をオブジェクトとして扱いたい時に使うらしいです。
CGPoint point = CGPointMake(200, 300); // NSValueに変換 NSValue *point_value = [NSValue valueWithCGPoint:point]; //CGPointを取得 CGPoint pointdayo = [point_value CGPointValue];
また、上記以外にもプリミティブ型と言われる型もオブジェクトではないのでNSNumberを使ってNSValueと同じようにしてあげる必要があります。