Home > Archives > 2010年10月 Archive

2010年10月 Archive

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でも動きました。
こちらの方がシンプルでしたね。。


iPhone GData-objectivec-client 使用時注意点 

  • Posted by: goron
  • 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


Index of all entries

Home > Archives > 2010年10月 Archive

Profile

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

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

Search
iPhone Apps






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

Return to page top