Amazon Kindle 版 Steve Jobs 伝記、日経ソフトウエア 2012年 1月号 (新メモリー管理方式「ARC」の使い勝手)、Emacs Tips バッファリストを同一ウインドウで開く

Amazon KindleSteve Jobs 伝記をようやく読み終えました。読んでいる途中で、本の更新メールが届き、驚きました。電子版になると文章の修正などが簡単になるので、更新処理も可能になるのですね。メールに記載された更新手続きを行うと、問題なく更新されました。

NeXT、iPhone に関する技術的な考察を知りたかったのですが、内容は少なめでした。本の最後にある And One More Thing …、Steve Jobs 自身の言葉は、感慨深いものがありました。ご冥福をお祈りします。

日経ソフトウエア 2012年 1月号 の内容

日経 ソフトウエア 2012年 01月号 [雑誌]

日経 ソフトウエア 2012年 01月号 [雑誌]

P16
特集 1
Java 新時代へ
P40
連載型 特集
アプリはまず「骨格」を作れ
Android ネイティブ・アプリ 設計法
■ 赤井 忠昭
P54
特集 3
iOS 5 で変わる iPhone プログラミング
retain や release はもういらない
新メモリー管理方式「ARC」の使い勝手
■ 荻原 剛志
P62
特集 4
Windows 8 & Visual Studio 11 徹底解説!
Metro アプリ開発をいち早く体験
■ 矢嶋 聡
P132
日本マイクロソフト エバンジェリストが語る最新プログラミング実践講座
Windows Phone 7 プログラミングを始めよう
第2回 スタート画面のタイルを使いこなす
■大西 彰
連載
NEW
P74
プチコンでニンテンドー3DS/DSi/DSi LL
ゲームプログラミング講座
第1回 お題 シューティングゲーム
■松原 拓也
NEW
P87
Xcode 4 使い方入門
第1回 各画面やメニューを理解する
■ 大津 真

に大変興味が湧き、購入しました。特に

P54
特集 3
iOS 5 で変わる iPhone プログラミング
retain や release はもういらない
新メモリー管理方式「ARC」の使い勝手
■ 荻原 剛志

については、ARC のより深い理解の参考になりました。再確認のため Apple の資料を調べてみました。

まず、最初に新しい機能については

What's New in iOS: Introduction
https://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008244-SW1

What's New in iOS: iOS 5.0
https://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Articles/iOS5.html#//apple_ref/doc/uid/TP30915195-SW1
Automatic Reference Counting

で概要を理解できます。上で紹介されているリンク先

Xcode New Features User Guide: Introduction
https://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/00-Introduction/Introduction.html#//apple_ref/doc/uid/TP40004626
▼ New Features in Xcode 4.2
Automatic Reference Counting

でも確認できます。さらに紹介されているリンク先

Transitioning to ARC Release Notes
https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html#//apple_ref/doc/uid/TP40011226

が一番詳しいので、これさえ読んでおけば、充分だと思います。

私自身の経験ですが、NSLog などで

Thread 1: Program received signal: "EXEC_BAD_ACCESS".

が表示される時、原因となるファイルの ARC を無効にすると回避できることがあります。本当は、原因を取り除くべきなのですが、私自身、究明できないので暫定処理として使っています。

ARC のファイルごとの設定方法は、上のリンク先に載っています。簡単に説明すると

プロジェクト名/プロジェクト/Build Settings
▼ Apple LLVM compiler 3.0
Objective-C Automatic Reference  Co…

で、プロジェクト自体の ARC を有効にし、

プロジェクト名/TARGETS/Build Phases
▼ Compile Sources (6 items)

上図のように ARC を無効にしたいファイル名の右側、Compiler Flags エリアをダブルクリックし、表示されたウインドウに

-fno-objc-arc

を入力してください。これで、ARC を無効にできます。何も指定していない場合は、プロジェクト自体が ARC を有効にするので、自動的に -fobjc-arc フラグがセットされます。

また、日経ソフトウエア 2012年 1月号

連載
NEW
P74 プチコンでニンテンドー3DS/DSi/DSi LL
ゲームプログラミング講座
第1回 お題 シューティングゲーム
■松原 拓也

の記事も購買目的の一つです。早速、プログラムを入力して遊んでいます。いろいろ改造しながら、スプライトの利用方法 (ミニ・シュート: 自機の爆破処理など)を理解しています。

最後に、ちょっとした Tips です。通常 Emacs でバッファリストを開くと別ウインドウに表示されますが、同じウインドウに表示する設定です。

;;  ========================== .emacs ==========================
;; list-buffers
(setq same-window-regexps '("\*Buffer List\*"))    ;; \ = バックスラッシュ = Option + \
Force Same Window - GNU Emacs Manual
http://www.gnu.org/s/libtool/manual/emacs/Force-Same-Window.html
Special Buffer Frames - GNU Emacs Manual
http://www.gnu.org/s/libtool/manual/emacs/Special-Buffer-Frames.html#Special-Buffer-Frames

を参考に設定してみました。same-window-regexps 変数は、正規表現のリストです。