[iOS] Scroll Viewのベストプラクティス

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

昨夜、株式会社はてなのid:ninjinkunにUIScrollViewの事で相談した所、WWDC2010のセッションがオススメだと教えてもらいました。

少し調べてみましたが、たぶんApplication Frameworks Session 104 – Designing Apps with Scroll Viewsが話してヤツだと思う。良いセッションなので、iPhone/iPadの開発に携わっている人は一度見る事をオススメする。

ソースコードはこちら

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis

[Xcode] Interface BuilderのIB接続に関する問題 その2

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

こちらのエントリーとは別のエラーで、次のようなエラーを吐いて落ちる問題がある。

-[UIViewController _loadViewFromNibNamed:bundle:] loaded the “XxxxxxView” nib but the view outlet was not set.’

これは、File’s OwnerとViewのコネクションが張られていない事が原因で出るエラーなので、以下のようにFile’s Ownerを選択して、viewとViewを以下のように繋いでやると良い。

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis

[Xcode] EXEC_BAD_ACCESSのデバッグ方法

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

EXEC_BAC_ACCESSとは、いわゆる不正なメモリアクセス(ポインタ操作)を行った際に発生するエラーである。通常は、解放済みの変数にアクセスしようとしたり、解放済みの変数をもう一度解放したりなどが、それにあたる。

ここ1週間Objective-Cを使ってみた感じでは、ポインタと言ってもゴリゴリとポインタの数値を直接操作する機会は無く、単に参照を持つというのに使うことがほとんどのようだ。

不正なメモリアクセスに関しては、ツールさえあれば原因を調べやすい類のバグなので安心して欲しい。ここでは、便利なデバッグオプションを紹介したいと思う。

Xcodeのメニューから「プロジェクト」-「アクティブな実行ファイル」を選び、「引数」タブにある「環境変数」に以下の4項目を設定すると原因は一目瞭然になる。

MallocStackLogging=YES
MallocStackLoggingNoCompat=YES
NSZombieEnabled=YES
NSDebugEnabled=YES

ただし、上の2つに関してはメモリーを消費しやすいので、搭載メモリーが少ないiPadなど実機デバイスを利用したクロスデバッグ時には、このオプションが原因で落ちる事もあるようなので、注意したい。

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis