Permalink
MYCOM PCWEB で連載中の「ダイナミック Objective-C」だけど、13 回目は「Objective-C のエンジン部 - ランタイムに踏み込む」だ。
いままでは、Objective-C の仕様や機能をあれこれ紹介してきたけど、もうネタ切れだ。言語仕様、小さいからな。ここからは大きく方向を変えて、ランタイムライブラリの中身を紹介していく。ランタイムは C 言語で書かれているから、Objective-C からは直接取り扱うことができる。こうなると、もう、なんでもありの世界だ。
たとえば、ポージングに使われる poseAsClass: メソッドだけど、これはランタイムに対応する API がある。その API の中身をのぞけば、何をやっているか分かる。これは便利だ。さらに、そんな感じのコードを自分で書いて、しかも Objective-C の中で、実現することもできる。こうなるともう、ただの C 言語だよな。
ランタイムを取り上げる本当の狙いは、オブジェクト指向の実装の一例を十分に紹介すること。たとえば、オブジェクト指向を説明する時に、「生き物」オブジェクトがあって、「ほ乳類」オブジェクトがあって、「犬」オブジェクトがあって、云々と説明していくのもいいけど、依って立つものがないと話が眠くなるよな。
それよりも、「クラスとは何か?」と問われたら、「クラスとはこれです!」と、C 言語で書かれた Class 構造体を見せた方が分かりやすい。おれはこっちの方が好きだ。連載も、こんな感じで進めていきます。こうやっていくことで、「裸のオブジェクト指向」の姿を見せていきます。
Permalink
シイラの方は、ビルド出しまくってます。こっちのページでは、10/26 に紹介したけど、その後、build050127、build051028、build051031、build051101、build051102 と出てます。
build050126 からの主な変更点を紹介すると、
- 検索エンジンフィールドにファビコンを表示
- Quartz Extremeに対応していない機種では、環境設定のページエフェクトの設定の横に、注意書きを表示
- 環境設定のRSS記事の削除ボタンが機能していない問題を修正
- 期限が切れている証明書のサイトにアクセスしたときに、もとのページに戻ってしまう問題の修正
- メタル表示のときに、ステータスバーをエッチング表示
- 起動と終了の高速化
- Pantherでページエフェクトの注意書きが出てしまう問題の修正
- ヘルプリンクの修正
- RSSページで、MIMEがrdf+xmlであるページの対応
- サイドバーで、タブを右側にも表示
- RSSのパフォーマンスの改良
- RSSの未読数をDockアイコンに表示
- 詳細環境設定に、ページ履歴の保存期間尾設定を追加
- アイコン環境設定で、アクアとメタルのツールバーアイコンを別々に 設定可能
- セキュリティ環境設定で、Cookieを複数選択して削除可能
- RSSユーザインタフェースの改良
という感じ。RSS の実装と、報告いただいたバグの修正や、細かい機能の改善をやってる。とても重かった RSS だけど、現在の最新のビルドでは、かなり軽くなっている。
やってもやってもキリがないので、そろそろ収斂をはからないといけない。