27 8月, 2010

(
0)

(
0)

(
0)

(
0)
Total: 0
昨夜、株式会社はてなのid:ninjinkunにUIScrollViewの事で相談した所、WWDC2010のセッションがオススメだと教えてもらいました。
少し調べてみましたが、たぶんApplication Frameworks Session 104 – Designing Apps with Scroll Viewsが話してヤツだと思う。良いセッションなので、iPhone/iPadの開発に携わっている人は一度見る事をオススメする。
ソースコードはこちら
27 8月, 2010

(
0)

(
0)

(
0)

(
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を以下のように繋いでやると良い。

27 8月, 2010

(
0)

(
0)

(
0)

(
0)
Total: 0
EXEC_BAC_ACCESSとは、いわゆる不正なメモリアクセス(ポインタ操作)を行った際に発生するエラーである。通常は、解放済みの変数にアクセスしようとしたり、解放済みの変数をもう一度解放したりなどが、それにあたる。
ここ1週間Objective-Cを使ってみた感じでは、ポインタと言ってもゴリゴリとポインタの数値を直接操作する機会は無く、単に参照を持つというのに使うことがほとんどのようだ。
不正なメモリアクセスに関しては、ツールさえあれば原因を調べやすい類のバグなので安心して欲しい。ここでは、便利なデバッグオプションを紹介したいと思う。
Xcodeのメニューから「プロジェクト」-「アクティブな実行ファイル」を選び、「引数」タブにある「環境変数」に以下の4項目を設定すると原因は一目瞭然になる。
MallocStackLogging=YES
MallocStackLoggingNoCompat=YES
NSZombieEnabled=YES
NSDebugEnabled=YES
ただし、上の2つに関してはメモリーを消費しやすいので、搭載メモリーが少ないiPadなど実機デバイスを利用したクロスデバッグ時には、このオプションが原因で落ちる事もあるようなので、注意したい。