« 2007年7月 | トップページ | 2007年10月 »

2007.08.16

Cocoa Life 特売

そういや会長に「宣伝しといてね」と言われていたのだった。

明日、8/17のコミケ72で、「Cocoa Life」のvol.1, vol.3 を買うと、おまけにvol.2が付いてくるというセールが開催されます。結果的には今まで刊行された3冊が2冊の値段で買える、というようなことなのですが、びみょーにそうでもなく。なぜ無料なのがvol.2なのかは会場で直接聞いてくださいっ。

|

2007.08.09

Code Beach てば、どうなった?

前回の紹介から3ヶ月たったので、現状を確認。アレ?あんまし増えていないような…

記録してないから記憶にたよるけれど、NDAlias は前に見たときにあったよな気がする。てことは、多くて 10 コくらいか。

現状をメモ:今は #45

後発の Cocoa Traces もそんなに数はかわらない印象。

|

2007.08.06

Rabbit 0.5.3 の MacPorts 対応しました

Ruby/Gtk による素敵プレゼンテーションツール Rabbit の port を最新の 0.5.3 に更新。インストール・アップグレードの手順については INSTALL.macosx-macports.ja を参照のこと。

とくに問題もなく、バージョンとチェックサムを更新しただけ。LC_MESSAGES=C にしているのを忘れていて「やべえ、GetText 効いてない」と 5 分ほどあせってたポカがあったくらい。

|

2007.08.02

Cocoa の例外についての詳しい説明 @MacDevCenter

MacDevCenter の新作 "Understanding Exceptions and Handlers in Cocoa" が 7ページの大作。この記事は、Cocoa/Objective-C の例外処理について説明したもの。Cocoa の例外は、MacOS X 10.3 から導入されたものなので、2007 年の今では、ほとんどの Mac 環境で利用できるでしょう。

ざっと概観を。6, 7 ページあたりは、ある程度経験のある Cocoa プログラマでも知らなかったりするのではないだろーか(そんだけ重要でもない、という考えもあり)。

1-3 基本

はじめの 3 ページでは、Cocoa の例外についての基本的なことを説明している。知っている人はとばしてかまわない。

  • NSException クラス
  • @try, @catch, @finally ディレクティブ
  • コンパイラへの -fobjc-exceptions オプションの指定
  • 実際のコード例

Java や Ruby などの他の言語では、例外のクラスでその例外を識別する。Cocoa では、例外はすべて NSException クラスであり、その名前 -[NSException name] で区別するというところが、他のプログラミング言語の経験者にはひっかかりがちかもしんない。

4 実は例外じゃなくても catch できる

4 ページでは @throw, @catch により、例外でないオブジェクト(例では NSNumber)も 扱える、という話。知らなかったよ、これは。Ruby の throw に近いのかな。あまり使わないけれど。

Google Code Search で検索してみた

 @catch (id exc) {

とかゴーカイなのが。UnitKit(ドメインが売り出し中になってて、本家サイトがみつからない)か、ならわかるな。

4-5 try-catch のネスト

4 ページの後半から、5 ページに渡って、try-catch がネストしているときの振る舞いについて説明している。5 ページめの図を見ればだいたいわかる。

6 catch されなかったら?

6 ページでは、発生した例外が catch されなかったらどうなるかについて説明している。Cocoa 環境では Default Exception Handler によって扱われる。NSApplication 環境下では、自動的に用意され、これが catch されなかった例外を処理している。

また、例外オブジェクトの持っている情報ビットについてくわしく説明していて、最後に例外ハンドラを自作して利用する方法を紹介。なんてマニアックなんだ!

7 NSApplication 下での例外ハンドラの差し替え

6 ページで紹介した例外ハンドラの登録は、NSApplication がないプロセスでの方法だった。最後の 7 ページでは NSApplication のある環境での、例外ハンドラの登録方法を説明している。ようするに、NSApplication の処理が終わったあとで、6 ページと同じ方法で上書きしているんだけど。

このへんは去年の Cocoa 勉強会で川名さんが話していたような気がするのだけど、手元に資料がなくて思い出せない。

|

« 2007年7月 | トップページ | 2007年10月 »