ページへ戻る
印刷
iOS/Objective-C/チートシート
をテンプレートにして作成 ::
NJF Wiki
xpwiki
:iOS/Objective-C/チートシート をテンプレートにして作成
開始行:
*このページについて
普段、クロスプラットフォームのフレームワークを使っている...
Objective-Cは基本的な文法はC、C++、Javaなどと同じため、そ...
*基本
**文字列
引用符と共に最初に「@」をつけるとNSStringという型になりま...
NSString *s = @"これはテスト";
**ログ出力
ログ出力はNSLogを使います。可変引数をとり、printfなどと同...
NSLog(@"Hello %d %d",10,20);
結果
Hello 10 20
*クラス関連
**クラス定義
クラス定義は「@interface クラス名:親クラス」とします。
@interface TestClass:NSObject{
// プロパティ定義など
}
// プロトタイプ宣言など
@end
NSObjectは全てのクラスの元となるクラスなので、継承させる...
**インスタンス変数の定義
「@interface」で囲まれている中で定義します。
@interface TestClass:NSObject{
@public
int a;
@private
int b;
}
@end
「public」「protected」「private」などのアクセス制限が使...
**プロパティ定義
「@property」を使うと、先頭に「_」(アンダーバー)がついた...
@property int a,b;
とすると、
@private
int _a, _b;
という変数が自動で定義され、setter、getterも定義されるの...
instance.a = 1
instance.b = instance.a
といった記法が可能になります。
「@property」で「readonly」を指定して読み取り専用変数にし...
また、よく使われる「atomic/nonatimic」はスレッドセーフか...
他にstrongは強い参照(参照が他で消されてもデータを保持)、c...
**メソッド定義
「@interface」にプロトタイプ宣言、「@implementation」に実...
- (戻り値の型) メソッド名:(型名)引数:(型名)引数:.....
先頭の「-」はインスタンスメソッドを表します。「+」だとク...
例えば引数無しなら
@implementation TestClass
- (int) getProduct{
return _a * _b;
}
引数にラベルを付けるには
- (戻り値の型) メソッド名:(型名)引数 ラベル:(型名)引数 ...
とします。
メソッドはprivateとかはないのですが、C言語などと同じでヘ...
@interface TestClass()
- (void) privateMethod;
@end
と書いておけば、privateメソッドと同じように使えます。クラ...
また、@propertyとかの前にメソッドを定義しようとするとエラ...
**クラスを使う
クラスによって違う事もありますが、インスタンス化はたいて...
TestClass *tc = [[TestClass alloc] init];
allocがメモリの確保、initがコンストラクタです。
インスタンス変数へのアクセスはCの構造体やC++のインスタン...
tc->a = 10;
tc->b = 20;
プロパティ定義がなされていると、「.」(ドット)でもアクセス...
tc.a = 12;
tc.b = 3;
メソッドは
[インスタンス変数名 メソッド名:引数 ラベル:引数]
のように呼び出します。
例えば
[tc getProduct]
[tc getSum:10 : 12]
のようになります。
これはjavaなどで言えば、
tc.getProduct()
tc.getSum(10,12)
に対応する物です。
**親クラスへのアクセス
superを使います。
[super メソッド名:変数とか]
**自分のインスタンスへのアクセス
selfを使います。thisではありません
[self myMethod];
*@なんとか
**@interface
Cとかで言うところのプロトタイプ宣言とかにあたるもの。@end...
**@implementation
@endまでに@interfaceで宣言したメソッドの処理を書く。
**@autoreleasepool
囲まれた範囲はメモリが自動で解放される。
**@property
変数がスレッドセーフかとか、強い参照かどうかなどの属性と...
**@synthesize
たいてい「@property」とセットで使い、getter,setterの定義...
**@protocol
他の言語でいうところのインターフェース。@optionalが実装し...
終了行:
*このページについて
普段、クロスプラットフォームのフレームワークを使っている...
Objective-Cは基本的な文法はC、C++、Javaなどと同じため、そ...
*基本
**文字列
引用符と共に最初に「@」をつけるとNSStringという型になりま...
NSString *s = @"これはテスト";
**ログ出力
ログ出力はNSLogを使います。可変引数をとり、printfなどと同...
NSLog(@"Hello %d %d",10,20);
結果
Hello 10 20
*クラス関連
**クラス定義
クラス定義は「@interface クラス名:親クラス」とします。
@interface TestClass:NSObject{
// プロパティ定義など
}
// プロトタイプ宣言など
@end
NSObjectは全てのクラスの元となるクラスなので、継承させる...
**インスタンス変数の定義
「@interface」で囲まれている中で定義します。
@interface TestClass:NSObject{
@public
int a;
@private
int b;
}
@end
「public」「protected」「private」などのアクセス制限が使...
**プロパティ定義
「@property」を使うと、先頭に「_」(アンダーバー)がついた...
@property int a,b;
とすると、
@private
int _a, _b;
という変数が自動で定義され、setter、getterも定義されるの...
instance.a = 1
instance.b = instance.a
といった記法が可能になります。
「@property」で「readonly」を指定して読み取り専用変数にし...
また、よく使われる「atomic/nonatimic」はスレッドセーフか...
他にstrongは強い参照(参照が他で消されてもデータを保持)、c...
**メソッド定義
「@interface」にプロトタイプ宣言、「@implementation」に実...
- (戻り値の型) メソッド名:(型名)引数:(型名)引数:.....
先頭の「-」はインスタンスメソッドを表します。「+」だとク...
例えば引数無しなら
@implementation TestClass
- (int) getProduct{
return _a * _b;
}
引数にラベルを付けるには
- (戻り値の型) メソッド名:(型名)引数 ラベル:(型名)引数 ...
とします。
メソッドはprivateとかはないのですが、C言語などと同じでヘ...
@interface TestClass()
- (void) privateMethod;
@end
と書いておけば、privateメソッドと同じように使えます。クラ...
また、@propertyとかの前にメソッドを定義しようとするとエラ...
**クラスを使う
クラスによって違う事もありますが、インスタンス化はたいて...
TestClass *tc = [[TestClass alloc] init];
allocがメモリの確保、initがコンストラクタです。
インスタンス変数へのアクセスはCの構造体やC++のインスタン...
tc->a = 10;
tc->b = 20;
プロパティ定義がなされていると、「.」(ドット)でもアクセス...
tc.a = 12;
tc.b = 3;
メソッドは
[インスタンス変数名 メソッド名:引数 ラベル:引数]
のように呼び出します。
例えば
[tc getProduct]
[tc getSum:10 : 12]
のようになります。
これはjavaなどで言えば、
tc.getProduct()
tc.getSum(10,12)
に対応する物です。
**親クラスへのアクセス
superを使います。
[super メソッド名:変数とか]
**自分のインスタンスへのアクセス
selfを使います。thisではありません
[self myMethod];
*@なんとか
**@interface
Cとかで言うところのプロトタイプ宣言とかにあたるもの。@end...
**@implementation
@endまでに@interfaceで宣言したメソッドの処理を書く。
**@autoreleasepool
囲まれた範囲はメモリが自動で解放される。
**@property
変数がスレッドセーフかとか、強い参照かどうかなどの属性と...
**@synthesize
たいてい「@property」とセットで使い、getter,setterの定義...
**@protocol
他の言語でいうところのインターフェース。@optionalが実装し...
ページ名: