ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Objective-Cのプロパティ

Property

Objective-C 2.0から追加された機能

  1. Interfaceにプロパティを設定

セッター、ゲッターメソッドなしで「@property」でセットする

@interface xxx
{
  float value1;
  float value2;
}
  @property float value1;
  @property float value2;
@end
  1. implementation設定

「@synthesize」でプロパティを設定、メソッドは不要

@implementation xxx
  @synthesize value1;
  @synthesize value2;
{...}
@end
  1. Propertyのセット

ドット記法でプロパティをセットする

instance.value1 = 10.1;
instance.value2 = 20.2;
  1. Propertyの呼び出し

ドット記法で呼び出す

NSLog(instance.value1);
NSLog(instance.value2);

copy,retain,assign属性

  1. copy属性

文字列の場合、copyを適用したプロパティが必要

@property (copy) NSString *name;
  1. retain属性

対象がオブジェクトの場合、retainを適用したプロパティが必要

@property (retain) Engine *engine;
  1. assign属性

retainが送られない様にしたい場合使用

  1. nonatomic属性

マルチスレッド環境で使われ無い場合、アクセッサを少し高速にする
注にcocoa touchで使用される。

@property (nonatomic, retain) NSString *name;

readonly, readwrite属性

  1. 読取専用プロパティ設定
@property (readonly, copy) NSString *name;
@property (readonly) float size;
  1. 読み書きプロパティ設定
@property (readwrite, copy) NSString *name;
@property (readwrite) float size;

プロパティの名前を変える方法

  1. interface
@property (copy) NSString *name;
  1. implementation
@synthesize name = appellation;
  1. 呼び出しもしくはセット方法
self.name = @"Car";
self.appellation = @"Car";