jFD開発したりしなかったり日誌
2008-09-18 [長年日記]
_ Objective-C難しい・・・
iPhoneアプリを書いてみたくて、ここしばらくSDK相手に格闘中だ。
とりあえず簡単な物から書こうと思い、定番のRSSリーダーでも
作ろうかと思ったが、ネットにつながってないとテストも出来ないんで
通勤の暇つぶしになってくれなくて不便だ。
ローカルで完結するアプリは何があるか考え、馬鹿の一つ覚えで
ファイルマネージャーを書いてみることにした。
ファイルマネージャーと言ってもあくまで習作なんで実用的でなくてもいいし、
とりあえず動けばよしと思ってたが、動くまで苦労しまくった。
まず、Interface Builderがよくわからなかった。
今まで触ってきたVisual Studio風のGUIエディタとかなり発想が違うんで
意味が理解できずちんぷんかんぷんだった。
幸い、「たのしいCocoaプログラミング」という本が発売され、これで
やっと理解できたような(まだ怪しいが)。
次にUINavigationBarとUITableViewを使ってファイル一覧を表示し、
ディレクトリがクリックされたら深いディレクトリに潜る、というだけの物を
作ろうとしたが、階層が有限のインターフェイスの作り方は見つかっても
再帰的に無限に潜れるインターフェイスの作り方が見つからない。
よくわからず色々ためし、やっとこさどうやるかを理解した
(それで正しいのか確信が持ててないが)。
さらに1階層目が表示できるようになっても、次の階層に潜ったら
EXC_BAD_ACCESSというエラーを出してアプリが死ぬ。
これが何を表すのか理解したのは翌日だった。
既にメモリが解放済みのインスタンスにアクセスしようとして落ちている。
Objective-Cのメモリ管理は、参照カウンタのインクリメント、デクリメントをコードに
明示的に書いてやらなければならず、インクリメントするのを忘れてたんで
いつの間にかメモリが解放されてしまっていた。
基本Java屋、最近C#、その他Ajax、たまにGroovyなんて開発をしてるんで
メモリ管理がかなり苦手だ。
そろそろ僕も気の利いたiPhoneアプリの一つでも書いて世界で100万本くらい売って、
儲けたお金で二子玉川に一戸建てを買って夏はテラスからワイングラスを片手に
花火大会を眺めようじゃないの、と思ってたんだけど、先はずいぶん長そうだ。
僕がiPhone開発に慣れるまでにマーケットが飽和するか、飽きて誰も買わなくなってたら
どうしよう。
_ 仕事
忙しい。
Kさんに技術的な説明をしたのだが、相手はAction Scriptをちょっと書いたことのあるだけの
ほぼ完全な素人なんでコードの構造を理解してもらうのにかなりかかった。
僕の説明が下手なのもあるけれど、そもそもKさんデザイナーだし、理解に時間がかかるのは
仕方がない。
KさんにはこれからC#、SQL、あと僕の書いたフレームワークを使いこなして
戦力になってもらわなければならない。
無茶だよなあ。
Kさんが大筋を理解したら
「後はコードを読んで構造をもっと理解してください」
とお願いして、僕はその後延々と実装、実装、実装。
Windows Mobileアプリなんで、画面数は多いものの各画面の要素は少なく、単純な処理が多い。
数が多くてめんどくさいが難易度は低いんで、Kさんを慣れさせるのにはちょうどいいかもしれない。
僕は死ぬほどかったるいが。
- https://www.google.co.jp/ ×2
- http://s.luna.tv/search.aspx?q=exc_bad_access ipho... ×1
- http://209.85.175.132/search?q=cache:Uz8x66Y5jfYJ:... ×1
- http://www.navnav.jp/word-association/習作 ×1
- キーワード不明 ×38 / exc_bad_access iphone ×35 / iphone EXC_BAD_ACCESS ×17 / EXC_BAD_ACCESS iphone ×13 / EXC_BAD_ACCESS iPhone ×11 / objective-c EXC_BAD_ACCESS ×8 / iPhone EXC_BAD_ACCESS ×7 / objective-c exc_bad_access ×5 / EXC_BAD_ACCESS iPHONE ×2 / cocoa EXC_BAD_ACCESS ×2 / objective-c 難しい ×2 / objective-c 難易度 ×2 / objective-c exc_bad_access dictionary ×1 / iPhone camera exc_bad_access ×1 / exc_bad_access iPhone ×1 / objective-c EXC_BAD_ACCESS 引数 ×1 / iphone EXC_BAD_ACCESS 実機 大文字 ×1 / uinavigationbar ×1 / invalidate+EXC_BAD_ACCESS ×1 / UITableView ファイルマネージャー ×1 / objective-c NSURLRequest EXC_BAD_ACCESS ×1 / objective-c メモリ管理 EXC_BAD_ACCESS ×1 / objective c いつの間にか 解放 ×1 / objective-c EXC_BAD_access ヘッダ 宣言 ×1 / iPhone xcode EXC_BAD_ACCESS 見やすく ×1 / cocoa EXC_BAD_ACCESS setAction NSPopupButton ×1 / EXC_BAD_ACCESS objective-c ×1 / EXC_BAD_ACCESS UITableView ×1 / objective-c invalidate EXC_BAD_ACCESS ×1 / EXC_BAD_ACCESS いつの間にか 開放 ×1 / uinavigationbar interface builder ×1 / iphone 開発 uinavigationbar ×1 / exc_bad_access再帰 ×1 / iPhone アプリ 開発 EXC_BAD_ACCESS ×1 / uitableview 階層 ×1 / "Objective-C" +"EXC_BAD_ACCESS" ×1 / objective-c 配列 EXC_BAD_ACCESS ×1 / iphone 2.2 libxml exc_bad_access ×1 / JAVA EXC_BAD_ACCESS ×1 / objective-c EXC_BAD_ACCESS autorelease ×1 / UITableView UINavigationBar ×1 / iphone sdk exc_bad_access ×1 / EXC_BAD_ACCESS iPHone ×1 / EXC_BAD_ACCESS Objective-C ×1 / exc_bad_access IPHONE ×1 / @property 配列 objective-c EXC_BAD_ACCESS ×1 / iphone try catch EXC_BAD_ACCESS ×1 / iphone UITableView 階層 ×1 / iphone sdk EXC_bad_access ×1 / Objective-C EXC_BAD_ACCESS ×1 / exc_bad_access ファイル 書込み iphone ×1 / EXC_BAD_ACCESS IPHONE ×1 / Objecttive-c synthesize EXC_BAD_ACCESS resolved ×1 / iPhone Objective-C fileExistsAtPath EXC_BAD_ACCESS ×1 / UITableView メモリ解放 ×1 / iPhone EXC_BAD_ACCESS [CFString release] ×1 / 無限 リスト uitableview ×1 / uinavigationbar uitableview ×1 / exc bad access iPhone ×1 / iphone アプリ ファイルマネージャ ×1 / nspopupbutton 階層 ×1 / objective-c loadNibNamed EXC_BAD_ACCESS ×1 / UITableView EXC_BAD_ACCESS ×1 / EXC_BAD_ACCESS chrome ×1 / EXC_BAD_ACCESS objective-C ×1 / iphoneアプリ開発 EXC_BAD_ACCESS ×1 / EXC_BAD_ACCESS ×1 / iphone開発 EXC_BAD_ACCESS ×1 / fprintf iPhone 出力 EXC_BAD_ACCESS ×1 / たのしいCocoaプログラミング 難しい ×1 / Objective-C 難しい ×1