Objective-C
荻原さんの「詳細Objective-C2.0」を再読しました。Tigerの頃に入手した初版は1.0ベースで内容が古過ぎるので、改訂版に買い直しました。既に第3版が出版されていたのですが、敢えてSnowLoepard+Xcode3.2.6の環境に合わせてみました。 なんだか、Xcode4系もi…
Objective-C2.0の文法の復習中です。 SnowLeopardで実装されたブロックオブジェクト。古い参考書やテキストには載ってないので、最初は意味が分かりませんでした。 別に関数へのポインタでいいんじゃ?Delphiのサブ関数みたいなもんかな?とか思ってました。…
Objective-C 2.0の言語仕様で、理解をあいまいにしてた部分を復習しました。以前、書籍だけでObjective-Cを勉強した事あるけど、実際にコーディングしないとダメだわ。 特にカテゴリ、抽象クラス、プロトコルをしっかり理解すると、とてもおもしろい。Delphi…
今年に入ってから再開した、MacOSXでのCocoaプログラミング。1月下旬から始めて、毎日ではないけれど、それなりの時間を費やしました。昨日でようやくCocoaの勉強も一区切りです。 .... 初めてのCocoaはMacOSXの10.4(Tiger)で、開発ツールはXcode2でした。当…
SnowLeopardとXcode3.2.6な人間には今のところ関係ないです。アプリ販売する気もないし。Lion以降、Mac App Store経由のインストールを考慮するなら今のうちなんでしょうけど。昨年の11月くらいのニュースでは、Sandbox対応が2012.3.1申請分以降は必須でした…
想像以上に時間かかったけど、ようやくヒレガス本終わりました。チャレンジを二つ解かなかったけど、残りの例題は全部やりました。 最初の二冊も出だしとしては良かったけど、内容不足なのは否めない。ヒレガス本で基本中の基本は理解できたと思います。 Sno…
ヒレガス本の31.3節でInstrumentsの使い方が載ってます。 でも、僕のXcode 3.2.6環境では、"object Allocations" が見当たりません。「パフォーマンスツールを使って実行」のサブメニューが本より少ないぞ? iPhone SDKを入れてないとダメなのかな?まぁいい…
疲れた。ここまで一気に来たけど、Cocoaのメカニズムはすげーな。DelphiのVCLも使いやすいけど、ここまでの感動はなかったな。さっきやったNSFormatterなんて、業務のエントリー画面作るのにもってこい。VCLでTEditを継承してうんぬんも楽だけど、これもいい…
ヒレガス本の20.7節のチャレンジ1。 - (id)init;- (void)setShadowOffset:(NSSize)offset;- (void)setShadowBlurRadius:(float)val;- (void)setShadowColor:(NSColor *)color; このヒントじゃ全然判りませんよ。initがあるって事は、alloc してinitしろって…
久しぶりにLionを起動してセキュリティアップデート。ついでにXcode4.2.1も起動してみた。ヒレガス本は、SnowLeopardとXcode3.2.6で進めるつもり。これが終わったら、チャレンジ用のアプリをXcode4系でも試したい。今のiOS5.1はまだ必要ないので、Xcode4.3以…
ヒレガス本の18.9節のチャレンジ。 bezierPathWithOvalInRect:メソッドの練習だと思ったのに。 これ、新規でアプリを作るチャレンジじゃないですか。Canvasに描画するかのように図形を描けと。 ファイルへの入出力とUndo実装したら、簡易型ドローツールじゃ…
ヒレガス本の14.9節。チャレンジですが・・・ NSApplicationはNSApplicationDidResignActiveNotificationという通知をポストする。なので、"NS"と"Notification"取って実装してみました。 - (void)applicationDidResignActive:(NSNotification *)aNotificati…
ヒレガス本の13.10節のチャレンジ。resetボタンを用意して、IBOutletを追加して、IBActionと関連付け。まぁ、普通の流れです。- (IBAction)resetUserDefault:(id)senderとしてNSUserDefaultsをいじるのは想像つきます。で、ここで気になったのが、無駄を省く…
編集書式を指定するところで、ふと疑問が。Behavior → "Mac OS X 10.4 + Custom"style → "Currency"で、正数・負数のフォーマットを指定するのはOK。でも、ここで見慣れない記号があるのです。○に4つ突起物がついてるのですが、読み方が分かりません。通貨記…
ヒレガス本の10.9節。Info.plistの編集方法について書かれていません。Xcodeの画面ではResourcesに"プロジェクト名"-info.plistとなってるファイルを編集。ここまではOKなのですが、UTExportedTypeDeclarationsの追加方法って…このファイルを別途エディタで…
ヒレガス本の第9章。NSUndoManagerのところ。 Undo stackとRedo stackの関係は理解しやすい。ただ、例題の通り実装して、操作してみると違和感があります。 編集Undoの処理単位が行ではなくセル。実務だと行毎に処理したいケースもあるわけで。まぁ、これは…
ヒレガス本の8.5節。 何故か personName.length と指定しても動作しない。てか、まったくソートされなくなった・・・ ん?もしかして、直前の節で caseInsensitiveCompare: に変更したせい? 案の定、compare: に戻したら、期待通りに動作しました。テキスト…
ヒレガス本の7.4〜7.5節。アクセッサメソッドからプロパティについての記述があります。Objecvice-C2.0でプロパティが用意され、ゲッタ・セッタの記述が楽になってます。 ヒレガス氏は「オブジェクトへのアクセスはメッセージ」がお好みのようで、 [self set…
テキストでreplaceObjectAtIndex:withObject:メソッドが存在するのは分かってます。 NSTableViewも編集可能状態であればセルの編集も可能。ただし、datesourceに反映しなければ、再描画で元に戻ってしまう。当たり前な話。 で、その肝心のセル編集が終わった…
ヒレガス本3版の6.8節のチャレンジです。お題の画面では初期値が登録されてたので、そのようにしてみようかと。 ここで初めてメモリ・リークで悩みました。NSMutableArrayの生成と初期化はinitに置くとして、初期値の代入はどこ? awakeFromNibに置いたら、…
ヒレガス本の6章まで進みました。Cocoaのdelegateって良いですね。この概念気に入りました。コントローラ・クラスに処理を集めるとこんなにスッキリするのか。DelphiのTDataModuleに処理をまとめた事はあるけど、コンポーネントのイベント処理が煩雑になりが…
以前からWindowsではDelphiを主力にVB/VC++等でアプリケーションを作成してました。それは多分これからも続きますが、Windowsにどっぷり浸かった頭は何とかしないと。同じ環境に長く居るのは楽だけど、変化に対応できなくなるのは嫌なので。 デバイス系にも…