2011年02月20日

プロパティ宣言の覚え書き

Objective-C 2.0でのproperty宣言ですが、プロパティ宣言属性が省略されていた場合にどういう値になるかをまとめておきます。自分で書く場合にはGoogle Style Guide Lineを読んでからは3つとも書くようにしているんですが、他の人のコードを読む場合省略されていることがよくあって、いつもそこで「えーっとこれは‥‥」と考え込んでしまうので、復習が必要でした。

readonly/readwrite ... [readwrite]
assign/retain/copy ... [assign]
atomic/nonatomic ... [atomic]

のみっつです。

読み出し専用の値の場合には宣言が必要。読み書き両用がデフォルトです。書き込み専用属性なんてのはないんですね。

メモリ管理の方法はアサインがデフォルト、リテインないしコピーして値を保持したい場合には宣言が必要。

マルチスレッド環境でのアトミックはデフォルト。その心配がなく非アトミックにしたい場合には宣言が必要。

ということは
@property id something;
であれば、読み書き可能アサインでアトミック。以下と同じ。
@property(atomic,assign,readwrite) id something;


@property(nonatomic,copy) NSString *name;
で非アトミック、コピーで読み書き可能。

みたいな。


詳しくはこちら
「ADC Home > Reference Library > Guides > Cocoa > Objective-C Language > Objective-C 2.0プログラミング言語 > プロパティ > プロパティの宣言と実装」
http://developer.apple.com/jp/documentation/cocoa/conceptual/objectivec/Articles/chapter_5_section_3.html
ラベル:Objective-C
posted by 永遠製作所 at 23:40| 東京 ☁| Comment(0) | TrackBack(0) | Cocoa | このブログの読者になる | 更新情報をチェックする

2010年10月31日

アマゾンストア開設しました。

アマゾンのストアを設定しました。

自分の経験に照らし実際にその本を読んでお勧めできる本だけをリストアップしています。過去にもこのブログでいろいろのMac/iOS開発関係の本をおすすめしていますが、こちらのストアでまとめています。

http://astore.amazon.co.jp/movie2005-22

Mac App Storeのオープンも決まり、iOSで強引な開発をするのではなくCocoa特有の技術に順応して開発すればMac OS Xでのアプリケーション開発でも技術力を発揮できることでしょう。

posted by 永遠製作所 at 21:21| 東京 ☔| Comment(0) | TrackBack(0) | Cocoa | このブログの読者になる | 更新情報をチェックする

2010年03月21日

ゲームのためのライブラリ:Karakuri Framework公開

Cocoa Browser Airで大変お世話になっているNumataさんが、Mac OS XとiPhoneで共通で使えるゲームのためのフレームワークを公開されました。

Karakuri Frameworkです。
http://karakuri.designed.jp/

OpenGLとOpenALをベースにゲームで使う典型的な概念を直接オブジェクトや操作としてまとめて、余計なプリミティブな描画操作にまで落とし込まなくてもゲーム実装ができるのが優れています。

Cocoa/Cocoa touchに慣れるとViewまわりのあるいはコントロールの操作の細部までコードを書かないといけないのは、すごく面倒で敷居が高いです。

恐らく実際にOpenGLでゲームを書いているひとは必要なライブラリを自作で持っているのでしょう。

Karakuri Frameworkはアドホックな必要機能をまとめただけでなく、ゲーム開発に求められる要素を体系的に抽象化しており、これからゲームを開発しようとしているひとがこのフレームワークを使ってみることでゲームの作り方を習得できるのではないかと思えます。

是非、お試しください。
posted by 永遠製作所 at 10:44| 東京 ☁| Comment(0) | TrackBack(0) | Cocoa | このブログの読者になる | 更新情報をチェックする

Objective-C逆引きハンドブック

素晴らしい本が出版されました。




是非、こっちの目次を見てください。
http://www.c-r.com/mo_objcg2.htm

こんなことをしたいけどどうすればいいんだろう?という場面で、クラスリファレンスを引く場合に、この機能はこのクラスで実現されているのではないか?こういう名前ではないか?など推測しながら探すことが多いでしょう。

とくに、他の環境でプログラムしていた人からすると当然この名前であるはずと思って探していると見つからないけど違う名前であってそこを何度も見ている場合もあります。

英語の動詞の場合、なかなか思いつかないこともありますし、そもそもCocoaになれていない場合に違うクラスを探していることも多々あるでしょう。

そんなときに、あれがしたいけどという目的からクラスやメソッドを見つけることができるこのような本はリファレンスを探している時間を大幅に短縮してくれること間違いなしです。

実行例のサンプルもしっかりありますし、書籍のサイトからダウンロードもできるので本で探して使い方を確認したらファイルからコピー&ペイスとしてすぐに自分のプログラムで使える便利さもあります。

Mac OS上でもiPhone SDKでもどちらでも使える本です。少々高めに見えるかもしれませんが、実際に書店で確認するとその厚みからこの価格はむしろ安い位に思えます。

このような本をまとめるのには大変な時間がかかったでしょう。労作に拍手です。
posted by 永遠製作所 at 00:29| 東京 ☀| Comment(0) | TrackBack(0) | Cocoa | このブログの読者になる | 更新情報をチェックする

2009年03月21日

ダイナミックObjective-C

木下誠さんがマイコミで連載している「ダイナミックObjective-C」が書籍になりました。



Objective-Cの内部構造をハックしつつ、オブジェクト指向言語らしさ動的結合などObjective-Cらしさを理解するのに大変助けになります。らしさを生かした効率よいプログラミングをするのであればここの内容を知っておくことは有用です。

連載ないように記述を追加し、iPhone開発にも役立つ内容が追加されているとのこと。


Part I Objective-C

CocoaとObjective-Cと動的なオブジェクト指向
Objective-Cの動的型付け
Cocoa実現の肝
ターゲット/アクションパラダイム(1)
ターゲット/アクションパラダイム(2)
Cocoa-Javaの挑戦とは?
Objective-Cと様々な言語のブリッジ
カテゴリ
プロトコルが必要とされた背景とは?
非形式プロトコル
2つのプロトコルの使い分け
ポージングで乗っ取り
Objective-Cのエンジン部
メソッドとは何か
Mac OS X/Objective-Cにおけるクラスの実装を読む
クラス情報に直接アクセスする
メタクラスと親クラス
Objective-Cにおけるオブジェクトとは何か?
メソッド、セレクタ、メソッドの実装
メソッドを取得する
メソッドの型を読み解く
セレクタの実体
メソッドの実装
メッセージ送信
objc_msgSendの実装
メソッドリストからメソッドを検索する
メソッドのキャッシング
メッセージ送信の流れと関数呼び出しとの違い
ランタイムAPIでさらに動的に
動的なクラスの作成
メソッドの追加
メソッドの実装の置換
インスタンス変数の定義を調査
インスタンス変数に動的にアクセス
抽象クラスとクラスクラスタ
Core Foundation
Core Foundation誕生前夜
C言語によるオブジェクト
クラスの定義
多態性の実現
インスタンスの実装
変換コスト0のブリッジ
Core Foundationのisaフィールド
Objective-Cメソッドの処理
インプットマネージャから侵入
SIMBLでハックを管理
AspectCocoa
Objective-CとCocoaによるアスペクト指向
IMPによるアスペクト指向の実現
フォワーディングとポージングの利用
AspectCocoaの実例
インプットマネージャとの連携
F-Script CocoaとObjective-Cのスクリプティング環境
ガベージコレクション
GCのためのAPI
実体であるlibauto
保守的でありながらオブジェクト的
マーク・アンド・スイープ
コピーGCとコンパクション
プロパティ
インスタンス変数のアクセス制御
プロパティの宣言
ドット演算子
プロパティの属性
Fast Enumeration
速い列挙子
NSFastEnumerationプロトコル
Fast Enumerationのソースコード
Fast Enumerationに対応するクラスの実装

Part II デザインパターン

Appendix Hack the iPhone
posted by 永遠製作所 at 17:24| 東京 ☀| Comment(0) | TrackBack(0) | Cocoa | このブログの読者になる | 更新情報をチェックする