Home > Archives > 2010年10月 Archive
2010年10月 Archive
iPhone NSKeyedArchiver で構造体をエンコードする
- 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でも動きました。
こちらの方がシンプルでしたね。。
Tweet
- Comments: 0
- TrackBacks: 0
iPhone GData-objectivec-client 使用時注意点
- 2010年10月 6日 11:12
- iPhone
GData-objectivec-client の version 1.10で意外と気づきにくい注意点について。
iPhone3Gでのみ起動時できない不具合が出る。
厄介なのは、Debugビルドで端末へインストールすると問題はなく正常に動作しますが、ReleaseやDistributionでビルドした場合は、iPhone3Gのみ起動時にクラッシュするので気づきにくい!?
クラッシュログは以下のようになります。
Thread 0 Crashed:
0 MyApp 0x0004f4ac GDataCreateStaticDictionary + 40
1 MyApp 0x0004f662 +[GDataObject load] + 2
解決策は、
GDataのプロジェクトの設定で「アーキテクチャ」がarm7になっているので
Standard (arm6 arm7)に変更してGDataをビルドし直せば解決です。
以下、参考サイト
http://groups.google.com/group/gdata-objectivec-client/browse_thread/thread/1d077fbb8c4374de?pli=1
Tweet
- Comments: 0
- TrackBacks: 0
- Profile
-
iPhone/iPad開発・web制作・映像制作をしている平野百貨店の店長個人の覚書です。
ご意見・ご感想などお問合せはコチラからどうぞ。
※最近ツッコミをもらうので一応書いておきます。ブログのタイトル「袖触れ合うも多少の縁」はわざとです。正確には「袖振り合うも多生の縁」が正解です。 - Search
- iPhone Apps
-
- RSS
- リンク