特に何も指定しなかったときのインスタンス変数の有効範囲は@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, お勉強, メモ