1: 2017-12-07 (木) 05:44:26 njf |
2: 2017-12-07 (木) 08:17:22 njf |
- | 普段、cocos2d-xやadobe airなど、クロスプラットフォームのフレームワークを使っているので、たまにObjective-Cを使わないと行けない場面で、なかなか文法などを思い出せないときがあります。そんなときのために、Objective-C固有の文法などをまとめていっています。 | + | *このページについて [#v6c0967b] |
| + | |
| + | 普段、cocos2d-xやadobe airなど、クロスプラットフォームのフレームワークを使っているため、たまにObjective-Cを使う場面でなかなか文法などを思い出せないときがあります。そんなときのために、Objective-C固有の文法などをまとめていっています。 |
| + | |
| + | Objective-Cは基本的な文法はC、C++、Javaなどと同じため、それらと異なる部分を抜き出して書いています。また、上記のように他言語を使うことが多く、Objective-Cでがっつり開発することはないため、各々の項目についての詳しい説明は省いています。 |
| + | |
| + | *基本 [#n4f274d4] |
| + | |
| + | **文字列 [#c7733e7a] |
| + | 引用符と共に最初に「@」をつけるとNSStringという型になります。基本的に文字列はこれを使います。 |
| + | |
| + | NSString *s = @"これはテスト"; |
| + | |
| + | **ログ出力 [#lc67acc8] |
| + | |
| + | ログ出力はNSLogを使います。可変引数をとり、printfなどと同様のフォーマットが使えます。 |
| + | |
| + | NSLog(@"Hello %d %d",10,20); |
| + | |
| + | 結果 |
| + | |
| + | Hello 10 20 |
| + | |
| + | *クラス関連 [#f9e052ac] |
| + | |
| + | **クラス定義 [#a5d1d8ae] |
| + | クラス定義は「@interface クラス名:親クラス」とします。 |
| + | @interface TestClass:NSObject{ |
| + | // プロパティ定義など |
| + | } |
| + | // プロトタイプ宣言など |
| + | @end |
| + | NSObjectは全てのクラスの元となるクラスなので、継承させるべき特定のクラスがないなら、これを継承させておくと便利です。 |
| + | |
| + | **インスタンス変数の定義 [#i9be9d10] |
| + | 「@interface」で囲まれている中で定義します。 |
| + | @interface TestClass:NSObject{ |
| + | @public |
| + | int a; |
| + | @private |
| + | int b; |
| + | } |
| + | @end |
| + | |
| + | 「public」「protected」「private」などのアクセス制限が使えます。 |
| + | |
| + | **プロパティ定義 [#x794a50f] |