- 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でも動きました。
こちらの方がシンプルでしたね。。
- Newer: iPhone等で再生するm4vへのファイル変換
- Older: iPhone GData-objectivec-client 使用時注意点
Comments:0
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 袖触れ合うも多少の縁