Home > iPhone > iPhone NSKeyedArchiver で構造体をエンコードする

iPhone NSKeyedArchiver で構造体をエンコードする

  • Posted by: goron
  • 2010年10月25日 15:55
  • iPhone

NSKeyedArchiver で構造体を入れたNSValueでエンコードしてみたら、
iOS4では問題はないのだが、iOS3では以下のエラーが出てエンコードできないらしい。

-[NSKeyedArchiver encodeValueOfObjCType:at:]: this archiver cannot encode structs'

今回入れてみた構造体は、CGAffineTransformとCGRect
下記がエンコードするサンプルのDictionary


NSMutableDictionary *dict = [[[NSMutableDictionary alloc]init]autorelease];
[dict setObject:[NSValue valueWithCGAffineTransform:fViewtransform] forKey:@"fViewtransform"];
[dict setObject:[NSValue valueWithCGRect:fViewRect] forKey:@"fViewRect"];

上記はiOS4では問題なく動いてる

解決法は、NSStringFromCGAffineTransform() / NSStringFromCGRect()
を使えば良いと。


[dict setObject:NSStringFromCGAffineTransform(fViewtransform) forKey:@"fViewtransform"];
[dict setObject:NSStringFromCGRect(fViewRect) forKey:@"fViewRect"];

これで、iOS3でも動きました。
こちらの方がシンプルでしたね。。


Clip to Evernote

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://www.hirano-dept.com/mt/mt-tb.cgi/107
Listed below are links to weblogs that reference
iPhone NSKeyedArchiver で構造体をエンコードする from 袖触れ合うも多少の縁

Home > iPhone > iPhone NSKeyedArchiver で構造体をエンコードする

Profile

iPhone/iPad開発 web制作:平野百貨店
iPhone/iPad開発・web制作・映像制作をしている平野百貨店の店長個人の覚書です。
ご意見・ご感想などお問合せはコチラからどうぞ。

※最近ツッコミをもらうので一応書いておきます。ブログのタイトル「袖触れ合うも多少の縁」はわざとです。正確には「袖振り合うも多生の縁」が正解です。

Search
iPhone Apps






RSS
リンク
のこぎりそうの日記

Return to page top