この度のAPI変更により、Objective-Cでもクラス変数が宣言できるようになりました🎉 OS X 10.12 and iOS 10 Release Notes Cocoa Foundation Framework Use of class properties, in both Swift as well as Objective-C, latter using the new "@property (class)" declaration. 使い方
Objective-C でなんとなく知っているけど実はよく知らないプロパティ(@property)まわりの 基本的な仕様をまとめました。 Xcode6.1が正式リリースされてSwiftのβがとれたし、「Swift使うからいらないよ」なんて言わないで、iOS開発のお供にどうぞ。 プロパティ(@property)って何? メンバ変数(インスタンス変数)を外部から参照、代入するためのアクセサ(getter/setter)です。 メッセージ([]カッコで囲むアレ)で独自のgetter/setterを実装、使用してもいいですが、 プロパティを使う事で foo.name = @”John”; のような他言語でも馴染みのあるドット区切りで参照・代入ができるようになります。 例: // クラスヘッダファイル(Foo.h) @interface Foo : NSObject @property (nonat
Objective-C のプロパティの属性を指定するとき従うべきガイドラインをまとめた。 できる限り nonatomic を指定する atomic にしてもパフォーマンスが悪化するだけでほとんどメリットがない(参考:StackOverflow - Atomic vs nonatomic properties)。 nonatomic と atomic の使い分けの指針は次のとおり: 参照型: メモリアドレスのみの書き込みなので、常にnonatomicでよい プリミティブ型: int, BOOL等ワンステップでの書き込みが可能: 常にnonatomicでよい 単一のスレッドからしかアクセスされない: 設計に気をつけつつnonatomic推奨 複数のスレッドからのアクセスがあり、long,構造体などサイズの大きい値: atomic推奨 (thx to @takasek) 複数のスレッドから同時に
Animatable PropertiesMany of the properties in CALayer and CIFilter can be animated. This appendix lists those properties, along with the animation used by default. CALayer Animatable PropertiesTable B-1 lists the properties of the CALayer class that you might consider animating. For each property, the table also lists the type of default animation object that is created to execute an implicit ani
基本的に、 getter/setter/init/deallocメソッドの中でだけ_propertyを使い、 それ以外のときはすべて、self.propertyを使う のが良いでしょう。 (以下、uasiさんのアドバイスです) getter/setter の呼び出しコストは微々たるものですので、コストと副作用を考えて _property と self.property を使い分けるより、一律で self.property を使った方が楽です。 _propertyは、値を直接割り当てたり取得することしかできません。 これに対し、self.propertyは[self property]を呼ぶことと同じです。このやり方だと、独自のgetterやsetterをつくることができます。 (以下、uasiさんのアドバイスです) 独自の getter/setter を作ることで、あるプロパティを読み書き
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く