2015年3月29日日曜日

Do Button pressed on March 29, 2015 at 08:17AM





Do Button pressed on March 29, 2015 at 08:17AM. View more information at http://ift.tt/19c434X.

グルマンでモーニング

2015年3月20日金曜日

March 20, 2015 at 02:16AM

ifttt run?

via Do Note http://ift.tt/1BCo3Eb

Do Button pressed on March 20, 2015 at 01:58AM





Do Button pressed on March 20, 2015 at 01:58AM. View more information at http://ift.tt/1FFovb6.

March 20, 2015 at 01:41AM

test

via Do Note http://ift.tt/1Lxo9Iv

2012年10月11日木曜日

GCは陳腐化?

ARC:ガベージコレクションは速度の問題で、Xcode4.2以降ではサポートされなくなった。その代わりに出てきたのがARCで、これはいままで手動で行ってきた参照カウンタの管理を自動化する。(http://d.hatena.ne.jp/watarijin/20120703から引用)

declared property 実践

・アクセサの命名
@property (getter=isEnabled, setter=makeEnable:) BOOL enabled;

setter名はコロン(:)を忘れずに。

・unwritable(と勝手に名付けた)
@property (readonly) NSString* firstName; 

setterを作らないので呼べません。

・書き込み可能なオブジェクトの保持(ガベージコレクションの有無で変わる)
GC無効の場合、オブジェクトのオーナーシップをどうすべきか、気にしなくてはいけない。retainを呼んでそのオブジェクトを保持するか、または単に参照を持つだけか。copyは指定されたオブジェクトをコピーして保持すると。

//GCなし
@property (retain) NSString* title;
@property (assign) id delegate;

@property (copy) NSString* value;


ガベージコレクション無効の場合はいずれかの指定子を宣言しないとけないと。

ガベージコレクション有効な場合、無指定ではassignとなる。assignかcopyかは明示しておいたほうが無難と。

declared property 小話

ドット構文とメソッド呼び出しの等価を考えた時、
・プロパティ名からメソッド名への変換規則は、キー値コーディングのものと同じになる。
→キー値コーディングが分かるまではおいておく。

・メソッドが本当に実装されているかどうかのチェックは、実行時に行うというのが原則
・id型クラスのメソッドは宣言しなくともコンパイルは通ってしまう。
・翻って、ドット演算子で記述するとチェックが入る。静的な型チェックが入り、プログラムミスが減ると。
 その例示は以下。インスタンス変数nameはプロパティ宣言がなされていない

id person = [[Person alloc] init];

// id型のプロパティにアクセスする
// エラーになる
NSString* name = person.name;

// 存在しないプロパティにアクセスする
// エラーになる
NSString* lastName = ((Person*)person).lastName;

 アクセサ記述は省略できたが、そのかわり増える記述もあるのだ(上のキャストがその例)。