特に何も指定しなかったときのインスタンス変数の有効範囲は@protectedと同等。
以下ディレクティブ。
ディレクティブ | 意味 |
---|---|
@private | クラス内でのみアクセス可能 |
@protected | クラス内と、その継承されたクラスでのみアクセス可能 |
@public | どこからでもアクセス可能 |
@package | 意味不明 |
@packageは意味不明。private_externが何なのか知らない。
シンボルテーブルには登録しないってやつ?
androidの@hideみたいな感じ?
メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。
特に何も指定しなかったときのインスタンス変数の有効範囲は@protectedと同等。
以下ディレクティブ。
ディレクティブ | 意味 |
---|---|
@private | クラス内でのみアクセス可能 |
@protected | クラス内と、その継承されたクラスでのみアクセス可能 |
@public | どこからでもアクセス可能 |
@package | 意味不明 |
投稿者 atkonn 時刻: 23:10:00 0 コメント
ラベル: Objective-C, お勉強, メモ
レシーバが持つインスタンス変数への参照
インスタンス変数の名前そのままでアクセス可能。
- (void)setA:(BOOL)b { a = b; }レシーバが保持しているインスタンス変数aへアクセス
@interface ObjA { ObjB *objB; } @interface ObjB {
@public BOOL a; } @implementation ObjA - (void)methodA:(BOOL)b { objB->a = b; }
投稿者 atkonn 時刻: 22:43:00 0 コメント
ラベル: Objective-C, お勉強, メモ
@implementationで始まり、@endで終わる。
#import "この実装のインタフェース.h" @implementation クラス名 { インスタンス変数宣言 } メソッド定義インスタンス変数宣言は必要なければ省略可能。その歳は{}も省略する。
- (型)メソッド名 { // ここに実装を定義 }
#import "stdarg.h" - (void)methods: param1, ... { va_list ap; va_start(ap, param1); .... }
ラベル: Objective-C, お勉強, メモ
インタフェースが、その階層以外のクラス名を記述している場合は、
そのクラスのインタフェースファイルをインクルードするか、
@classディレクティブを記述する。
@class クラス名; @class クラス名, クラス名;@classディレクティブは、インタフェースをインクルードしない。
ラベル: Objective-C, お勉強, メモ
インタフェースの場合、そのインタフェースに依存する全てのソースにincludeする必要がある。
インタフェースファイルは通常以下のようにincludeする。
#import "インタフェースファイル.h"
ラベル: Objective-C, お勉強, メモ
クラスは以下の2つに分けて定義する。
1) インタフェース
2) 実装
通常インタフェースと実装は別々のファイルとし、インタフェースは.h、実装は.mという拡張子をもつ。
インタフェース
インタフェースはディレクティブ@interfaceで始まり、ディレクティブ @endで終わる。
クラスのインタフェースは以下のように定義する。
@interface クラス名 : スーパクラス { インスタンス宣言 } メソッド宣言 プロパティ宣言 @end
+ (戻り値の型)メソッド名; +(戻り値の型)メソッド名:(パラメータの型)パラメータ; +(戻り値の型)メソッド名:(パラメータの型)パラメータ 名前:(パラメータの型)パラメータ;
-(戻り値の型)メソッド名; -(戻り値の型)メソッド名:(パラメータの型)パラメータ; -(戻り値の型)メソッド名:(パラメータの型)パラメータ 名前:(パラメータの型)パラメータ;
- (void)methoddayo:param1, ...;
@property (attribute) Type propertyName;
投稿者 atkonn 時刻: 23:57:00 0 コメント
ラベル: Objective-C, お勉強, メモ
クラス名は以下の2つの場合にのみ使用できる。
投稿者 atkonn 時刻: 23:18:00 0 コメント
ラベル: Objective-C, お勉強, メモ