FC2ブログ

--
--/--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2011
11/01

AutomaticReferenceCounting と Storyboard

iPhone開発


Xcodeの最新版(Version 4.2)を開発環境としたところ、新たなプロジェクトを作成する際に迷ってしまったことを書いていきます。

従来のXcodeにて開発を始める場合、僕はだいたい「View Based Application」をテンプレートとして選択していたのですが、最新版では「View Based Application」が選択肢からなくなっていました。

調べてみたところ、最新版の「Single View Application」が従来の「View Based Application」にあたるらしいです。


これがテンプレート選択画面。

SingleViewApplication.png


次の画面に進むと、なにやらまた見慣れぬチェックボックスが出てきます。

それが、

Use Storyboard
Use Automatic Reference Counting


ARC_storyboard.png

で、これもまた調べてみたわけです。


【Storyboard】

AppleのDeveloperサイトにはこんなことが書かれていました。

Xcodeのデザインツールに組み込まれている新しいStoryboardの機能を使用してアプリケーションのワークフローをレイアウトできます。Viewの間のトランジションにナビゲーションやタブバーを使用するアプリケーションを対象に作成されたStoryboardは、開発者向けのView Controllerを管理することによって開発を容易にします。手動でそれらをコード化する必要もなく、View間の切り替えの時に使用されるトランジションおよびセグエを指定できます。


要するに、タブバーやナビゲーションを使用したアプリケーションを、GUIを使ってもっと簡単に作ろう的なモノなんですかね。
Storyboardを使用するプロジェクトには、従来の MainWindow.xib のかわりに MainStoryboard.storyboard というファイルが入っていました。


【Automatic Reference Counting】

これもAppleのDeveloperサイトにはこんなことが書かれていました。

Automatic Reference Counting (ARC) for Objective-Cによって、メモリ管理をコンパイラの仕事にします。新しいApple LLVMコンパイラでARCを有効にすると、retainまたはreleaseを再度タイプする必要がなくなり、クラッシュやメモリリークを減らすと同時に、開発プロセスを飛躍的に簡素化します。コンパイラはオブジェクトを完全に理解し、もはや使われていない各オブジェクトを瞬時にリリースします。その結果,アプリケーションは、予測可能で滑らかな操作性を備えて、これまで以上に速く動作します。


なるほど、今までプログラム内でretainやreleaseを用いてオブジェクトの管理をしていたものを、コンパイル時にコンパイラが最適なタイミングで保持・解放してくれるんですね。
実際に、ARCを使用したプロジェクトで、releaseやretain、autoreleaseを記述するとエラーとなりました。

ちなみに、プロジェクトの設定からARCの使用設定を変更できます。

ARC_setting.png


Objective-C Automatic Reference Counting の値を NO に設定すると自分でメモリの管理を行えます。


CM

NAME
TITLE
MAIL
URL
PASS (削除時に必要)
SECRET 管理者にだけ表示を許可する
COMMENT&
DECORATION

TB

トラックバック

http://sonsofbasil.blog55.fc2.com/tb.php/19-bfbf3452

この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Taku Sasahara

Author:Taku Sasahara
Hello world!!

バジルの息子。
法学部法律学科卒。
バリバリの文系プログラマです。
ペーペーです。

Facebook

My faborite books
僕のお気に入り書籍の本棚

最新トラックバック

スポンサーリンク

検索フォーム

ブロとも申請フォーム

QRコード
QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。