日々精進

新しく学んだことを書き留めていきます

2012-04-01から1ヶ月間の記事一覧

ViewControllerの初期化とViewの初期化タイミング

IT

ViewControllerの初期化ではまったのでメモ。 ViewControllerのコンストラクタ内でViewの初期化をしようとするとViewが初期化されなかった。 理由はコンストラクタ内ではまだViewにオブジェクトが詰められていないため。 - (id)initWithNibName:(NSString *)…

EXEC_BAD_ACCESS解決方法

IT

EXEC_BAD_ACCESSの原因を調べるときはmalloc_historyを表示させると便利らしい。使い方は以下サイト参照。 http://snipplr.com/view/54151/

Xcodeデバッグ

IT

XcodeのデバッグはEclipseやVisualStudioに比べてかなりやりにくいと思う。 特に以下が困る。 ・変数に入っている値を変数ウィンドウで確認できない。コンソールでコマンドを打てば確認できるけど不便。。 ・ウォッチ式が使えない デバッガにはlldbとgdbがあ…

UIView:親Viewからはみ出した部分を表示させない

IT

UIViewはデフォルトでは子Viewが親Viewからはみ出している場合、はみ出している部分も表示される。 これはclipsToBoundsプロパティをYESにすると表示しないようにできる。 参考:http://d.hatena.ne.jp/gutskun/20091125/1259125719 これはデフォルトをYESに…

addSubviewでエラー

IT

下記のコードのaddSubviewしてるところでエラー。viewWillAppearが呼ばれたタイミングでエラーになるのかも。 SViewController *ctrl = [[SViewController alloc] initWithNibName:@"St" bundle:nil]; [cell addSubview:ctrl.view]; エラーメッセージは以下…

cocoa touch best practice1

IT

Stack Overflowの記事より プライベート変数に「_」プレフィックスをつけない .mファイル内の無名カテゴリにプライベートメソッドを宣言する deallocメソッドは@synthesizeを並べている部分のすぐ下に書く。理由は@synthesizeの一覧がdeallocすべき変数の一…

descriptionBuilder

IT

ちょっと便利そうなライブラリを発見。 https://github.com/kishikawakatsumi/DescriptionBuilder DescriptionBuilderを使うとdescriptionの実装が簡単にできる。 JavaなんかでもtoStringでオブジェクトの状態を書き出すのはよい習慣とされてたが今までほと…

Objective-Cのメソッドについて

IT

下記の記事が参考になったのでメモ。 http://news.mynavi.jp/column/objc/022/index.html ・Objective-Cのメッセージ式は動的に名前解決をしてメソッドを呼び出す。 よってコンパイル時に呼び出すメソッドが決まらない、パフォーマンスが多少悪いという特性…

Objective-Cのプロパティとインスタンス変数

IT

こちらの記事が非常に参考になったので覚え書き。 http://www.awaresoft.jp/ios-dev/item/115-ivar-naming-convention.html 1.インスタンス変数はヘッダファイルに書かない。プロパティ宣言だけでいい。 2. インスタンス変数とプロパティは別の名前にする。 …

Objective-Cのメモリ管理

IT

GCのない言語を触るのは初めてなのでメモリ管理について調べてみた。 下記の記事が非常に参考になりました。ありがとうございました。 http://www.zero4racer.com/blog/88 1.retain, releaseを書かない 2.オブジェクト型を生成する場合は必ずプロパティを作…

iPhone開発:ログを出してデバッグしやすくする

IT

各メソッドの先頭に以下のようなコードを追加するとメソッドが呼ばれる順序とかが追いやすいよ! - (void) viewWillAppear:(BOOL)animated { NSLog(@"calling:TestViewController viewWillAppear"); [super viewWillAppear:animated]; } cocoa touchはライフ…

Xcodeでスタックトレースを出す方法

IT

uncaughtExceptionが発生したときにスタックトレースを出すには、以下の記事を参考にuncaughtExceptionHandlerを追加すればok http://www.zero4racer.com/blog/480 Xcodeでデバッグほんとやりづらい。。 特に変数の値を確認しづらい。デバッグ中に式を実行し…

iPhoneを横にしたときに左右からページめくり

IT

cocoa touch標準のページめくりアニメーションは下からめくることしかできないので、 iPhoneを横にした時に右から左へページをめくる、といったアニメーションをするには以下のようにする必要がある。 NSView* parent = viewController.view; // the main vi…

Viewのライフサイクルメソッド3

IT

iOS5から、addSubViewした時にviewWillAppearが呼ばれるようになった。 よってiOS4以前とiOS5の両方のバージョンで動作するようにするには下記サイトに書いてあるように分岐を作る必要がある。 http://hmdt.jp/blog/?p=261 上記サイトのやり方はバッドノウハ…

Viewのライフサイクルメソッド2

IT

下記サイトが参考になりそう。 http://www.awaresoft.jp/ios-dev/item/114-ios4vs5-application-lifecycle.html http://d.hatena.ne.jp/k2_k_hei/20101025/1288004697 http://iphone-dev.g.hatena.ne.jp/paella/20090629/1246291917 上記のサイトでloadView…

iOS5のViewのライフサイクルメソッド

IT

最近仕事でObjective-Cを勉強してます。最初は「記法がきもい!あり得ない!」と思ってたけど最近なれてきた。 慣れって怖いね。。 Viewのライフサイクルメソッドではまったのでメモ。調査環境はiPad5.1シミュレータ ・ViewWillAppearは見た目上画面が表示さ…