刹那(せつな)の瞬き

Willkömmen! Ich heiße Setsuna. Haben Sie etwas Zeit für mich?

Objective-C

ObjC: 詳細Objective-C2.0読了

荻原さんの「詳細Objective-C2.0」を再読しました。Tigerの頃に入手した初版は1.0ベースで内容が古過ぎるので、改訂版に買い直しました。既に第3版が出版されていたのですが、敢えてSnowLoepard+Xcode3.2.6の環境に合わせてみました。 なんだか、Xcode4系もi…

ObjC: ブロックオブジェクト便利かも

Objective-C2.0の文法の復習中です。 SnowLeopardで実装されたブロックオブジェクト。古い参考書やテキストには載ってないので、最初は意味が分かりませんでした。 別に関数へのポインタでいいんじゃ?Delphiのサブ関数みたいなもんかな?とか思ってました。…

ObjC: カテゴリ、抽象クラス、プロトコル

Objective-C 2.0の言語仕様で、理解をあいまいにしてた部分を復習しました。以前、書籍だけでObjective-Cを勉強した事あるけど、実際にコーディングしないとダメだわ。 特にカテゴリ、抽象クラス、プロトコルをしっかり理解すると、とてもおもしろい。Delphi…

Cocoaの勉強は一区切り

今年に入ってから再開した、MacOSXでのCocoaプログラミング。1月下旬から始めて、毎日ではないけれど、それなりの時間を費やしました。昨日でようやくCocoaの勉強も一区切りです。 .... 初めてのCocoaはMacOSXの10.4(Tiger)で、開発ツールはXcode2でした。当…

Cocoa: 結局Sandbox対応って…

SnowLeopardとXcode3.2.6な人間には今のところ関係ないです。アプリ販売する気もないし。Lion以降、Mac App Store経由のインストールを考慮するなら今のうちなんでしょうけど。昨年の11月くらいのニュースでは、Sandbox対応が2012.3.1申請分以降は必須でした…

Cocoa: ヒレガス本終わり!

想像以上に時間かかったけど、ようやくヒレガス本終わりました。チャレンジを二つ解かなかったけど、残りの例題は全部やりました。 最初の二冊も出だしとしては良かったけど、内容不足なのは否めない。ヒレガス本で基本中の基本は理解できたと思います。 Sno…

Cocoa: Instrumentsの機能が見つからない

ヒレガス本の31.3節でInstrumentsの使い方が載ってます。 でも、僕のXcode 3.2.6環境では、"object Allocations" が見当たりません。「パフォーマンスツールを使って実行」のサブメニューが本より少ないぞ? iPhone SDKを入れてないとダメなのかな?まぁいい…

Cocoa: ヒレガス本は第26章まで

疲れた。ここまで一気に来たけど、Cocoaのメカニズムはすげーな。DelphiのVCLも使いやすいけど、ここまでの感動はなかったな。さっきやったNSFormatterなんて、業務のエントリー画面作るのにもってこい。VCLでTEditを継承してうんぬんも楽だけど、これもいい…

Cocoa: 文字に対するDropShadow

ヒレガス本の20.7節のチャレンジ1。 - (id)init;- (void)setShadowOffset:(NSSize)offset;- (void)setShadowBlurRadius:(float)val;- (void)setShadowColor:(NSColor *)color; このヒントじゃ全然判りませんよ。initがあるって事は、alloc してinitしろって…

Cocoa: Xcode4.2.1の方が使いやすいかも

久しぶりにLionを起動してセキュリティアップデート。ついでにXcode4.2.1も起動してみた。ヒレガス本は、SnowLeopardとXcode3.2.6で進めるつもり。これが終わったら、チャレンジ用のアプリをXcode4系でも試したい。今のiOS5.1はまだ必要ないので、Xcode4.3以…

Cocoa: チャレンジじゃねーよ

ヒレガス本の18.9節のチャレンジ。 bezierPathWithOvalInRect:メソッドの練習だと思ったのに。 これ、新規でアプリを作るチャレンジじゃないですか。Canvasに描画するかのように図形を描けと。 ファイルへの入出力とUndo実装したら、簡易型ドローツールじゃ…

Cocoa: これは引っかけ問題なのか?

ヒレガス本の14.9節。チャレンジですが・・・ NSApplicationはNSApplicationDidResignActiveNotificationという通知をポストする。なので、"NS"と"Notification"取って実装してみました。 - (void)applicationDidResignActive:(NSNotification *)aNotificati…

Cocoa: IBActionのメソッドから呼び出すのはダメ?

ヒレガス本の13.10節のチャレンジ。resetボタンを用意して、IBOutletを追加して、IBActionと関連付け。まぁ、普通の流れです。- (IBAction)resetUserDefault:(id)senderとしてNSUserDefaultsをいじるのは想像つきます。で、ここで気になったのが、無駄を省く…

Cocoa: NSNumberFormatterの通貨

編集書式を指定するところで、ふと疑問が。Behavior → "Mac OS X 10.4 + Custom"style → "Currency"で、正数・負数のフォーマットを指定するのはOK。でも、ここで見慣れない記号があるのです。○に4つ突起物がついてるのですが、読み方が分かりません。通貨記…

Cocoa: ユニバーサル識別子

ヒレガス本の10.9節。Info.plistの編集方法について書かれていません。Xcodeの画面ではResourcesに"プロジェクト名"-info.plistとなってるファイルを編集。ここまではOKなのですが、UTExportedTypeDeclarationsの追加方法って…このファイルを別途エディタで…

Cocoa: Undoの処理単位

ヒレガス本の第9章。NSUndoManagerのところ。 Undo stackとRedo stackの関係は理解しやすい。ただ、例題の通り実装して、操作してみると違和感があります。 編集Undoの処理単位が行ではなくセル。実務だと行毎に処理したいケースもあるわけで。まぁ、これは…

Cocoa: 書いてある事が真実ではない

ヒレガス本の8.5節。 何故か personName.length と指定しても動作しない。てか、まったくソートされなくなった・・・ ん?もしかして、直前の節で caseInsensitiveCompare: に変更したせい? 案の定、compare: に戻したら、期待通りに動作しました。テキスト…

Cocoa: アクセッサ・メソッド

ヒレガス本の7.4〜7.5節。アクセッサメソッドからプロパティについての記述があります。Objecvice-C2.0でプロパティが用意され、ゲッタ・セッタの記述が楽になってます。 ヒレガス氏は「オブジェクトへのアクセスはメッセージ」がお好みのようで、 [self set…

Cocoa: 配列要素の置換はいいとして

テキストでreplaceObjectAtIndex:withObject:メソッドが存在するのは分かってます。 NSTableViewも編集可能状態であればセルの編集も可能。ただし、datesourceに反映しなければ、再描画で元に戻ってしまう。当たり前な話。 で、その肝心のセル編集が終わった…

Cocoa: 初期値はどうすればいい?

ヒレガス本3版の6.8節のチャレンジです。お題の画面では初期値が登録されてたので、そのようにしてみようかと。 ここで初めてメモリ・リークで悩みました。NSMutableArrayの生成と初期化はinitに置くとして、初期値の代入はどこ? awakeFromNibに置いたら、…

Cocoa: delegateって便利かも

ヒレガス本の6章まで進みました。Cocoaのdelegateって良いですね。この概念気に入りました。コントローラ・クラスに処理を集めるとこんなにスッキリするのか。DelphiのTDataModuleに処理をまとめた事はあるけど、コンポーネントのイベント処理が煩雑になりが…

敢えてCocoaを勉強中

以前からWindowsではDelphiを主力にVB/VC++等でアプリケーションを作成してました。それは多分これからも続きますが、Windowsにどっぷり浸かった頭は何とかしないと。同じ環境に長く居るのは楽だけど、変化に対応できなくなるのは嫌なので。 デバイス系にも…