タグ

Objective-Cと宣言プロパティに関するBowz13のブックマーク (3)

  • Objective-C 宣言プロパティの更なる理解 - @dynamicを使った定義など. | thaty

    前回、宣言プロパティの概念と基的な使い方を解説しました。大まかに言えば以下のように、アクセサを省略して書くことができるものだと考えてもいいかもしれません。 今回は宣言プロパティの使い方をもう少し詳しく見て行きましょう。 プロパティ名とインスタンス変数名を区別する 上の例では、@propertyで宣言している名前は、インスタンス変数と同じです。 これを別の名前で定義することによって、外部からのアクセス時に使う変数と、内部からしかアクセスしない変数を明示的に区別することができます。 以下のように、まず@property定義時に外部アクセス用の変数名を宣言し、@synthesizeでインスタンス変数と外部用の変数を結びつけてやります。 /* Human.h */ @interface Human : NSObject { BOOL man; NSString* name; int starSi

    Objective-C 宣言プロパティの更なる理解 - @dynamicを使った定義など. | thaty
    Bowz13
    Bowz13 2014/02/13
    このために@dynamicというコンパイラ指示子が用意されています。これはコンパイラに、プロパティは宣言されてるけど、アクセサを自動生成しなくてもいいよということを教えるものです。
  • Objective C のプロパティ属性まとめ - Qiita

    上のカッコの中のやつ。 Setter の作成有無の指定 指定無し: readwrite readonly setter を作らない。 readwrite setter、getterを両方作成する。readonlyプロパティをオーバーライドする時に有用。 Setter の書き方の指定 指定無し: strong (非ARCではassign) assign 渡された値をそのまま保持。 参照先のオブジェクトが消えた! -> ゾンビ状態になり、それにメッセージを送るとプログラムがクラッシュする。 weak 渡された値をそのまま保持。 参照先のオブジェクトが消えた! -> 自動的に nil に書き換え。 strong (昔のretain) 渡されたオブジェクトのオーナーシップを取得して保持。 参照先のオブジェクトが消えた! -> いやいや、そんなことはないって。 copy 渡されたオブジェクトの co

    Objective C のプロパティ属性まとめ - Qiita
  • Modern Objective-Cでのシンプルなプロパティ記述方式 - Qiita

    今月からようやくModern Objective-Cに着手(かなり今さらだけど・・) 記述がかなりシンプルだとは聞いていて、情報もたくさん挙がっていたのだけど、困惑したのでメモ。メンバー変数とか@synthesizeとか宣言不要でコードがスッキリして嬉しい。基的には@propertyだけ宣言すれば良いみたい。また@properyもいままでヘッダファイルでのみ宣言していたけど、プライベートなものは実装ファイルの無名カテゴリ内に宣言すればよいみたい(パブリックプロパティは従来通りヘッダファイルに記述)。以下、プライベートプロパティを宣言する時の例。 一応、メンバー変数とか当に定義されているのか確認。 もう"Legacy" Objective-Cでは書けないな。 参考サイト 参考にさせていただいたサイトです。 Objective-Cプログラミング言語 - プロパティの宣と実装 by Appl

    Modern Objective-Cでのシンプルなプロパティ記述方式 - Qiita
  • 1