Objective-C
アーク 設定 Xcode4.2以降でデフォルト 新規プロジェクトの作成で「Use Automatic Reference Counting」のチェックを入れるビルド設定で「Objective-C Automatic Reference Counting」をYESにする。 変換 既存のソースコードをARC対応にするには Edit>Refact…
** 32ビットランタイムの時代は例外処理のコストが高かったが、64ビットのランタイムではゼロコスト例外処理になっているらしい。 基本 @try { } @catch(NSException *) {} @finally {} 独自の例外の発生 @throw NSException*
基本型と変数定義 種類 型名 バイト数 文字 char 1 整数 short 2 int 2 long 4 long long 8 浮動小数点数値 float 4 double 8 long double 16 Objective-C NSInteger 4 NSUInteger 4 BOOL 1 YESかNO キャスト int型の12をchar型に変更するには(char)12としま…
Index>Objective-C>blocks ブロック構文 ブロックはMacOS X10.6、iOS4.0から使うことができるApple のC言語拡張です。 C,Objective-C,C++で使うことができます。他のプログラミング言語ではクロージャと呼ばれることがある機能です。非同期通信などによく使…
Objective-Cのコンパイル -o 実行ファイル名を指定 -Wmost -Wall 警告を表示 #import 解説 ヘッダファイルのインポート 基本的に#includeと同じだが、重複読み込みを避けるシステムのヘッダファイルには<>をつける 引数 フレームワーク クラス Instance Meth…
プリプロセッサ制御行 #import 解説 ヘッダファイルのインポート 基本的に#includeと同じだが、#importは一度読み込んだヘッダファイルを複数回インクルードしない。システムのヘッダファイルには<>をつける #import フレームワーク名/ヘッダファイル名> #im…
プログラム実行時に最初に呼び出される関数 @interface 解説 引数 フレームワーク クラス Instance Methods 使用可能 参照 例文
コンパイラ指示子 @private 内部からのアクセスのみ @protected 宣言したクラスと継承するクラスからアクセス @public どこからでもObjective-C 2.0 64ビットランタイムシステムでのみ使用可能 @package フレームワーク内部では@public、外部に対しては@priv…
インスタンスオブジェクト自身 [self retain]; 解説 インターフェース部の宣言 引数 フレームワーク クラス Instance Methods 使用可能 参照 例文
継承関係の宣言 @interface クラス名 : スーパークラス名 { インスタンス変数の宣言; ... } メソッドの宣言; ... @end 解説 インターフェース部の宣言 引数 フレームワーク クラス Instance Methods 使用可能 参照 例文 @interface Synset : NSObject { NSSt…
インスタンスの初期化 init -(id) init { self = [super init]; if (self != nil ){ ... } return self; } 一般にイニシャライザで返す形はidに 指定イニシャライザ サブクラスでスーパークラスの指定イニシャライザを上書きする場合は必ずスーパークラスの…
スーパークラスのメソッドの呼び出し superで指定します。 [super method]; 解説 引数 フレームワーク クラス Instance Methods 使用可能 参照 例文
Objetive-C2.0から使用可能id型の変数には適用できない。 解説 サンプル 例文
解説 サンプル 例文
コンパイラ指示子クラスであることを宣言 解説 サンプル 例文
@private 内部からのアクセスのみ @protected 宣言したクラスと継承するクラスからアクセス @public どこからでも 解説 サンプル 例文
解説 サンプル 例文
コンパイラはclang 解説 サンプル 例文
コンパイラはclang 解説 サンプル 例文
解説 サンプル 例文
解説 サンプル 例文
プロトコル で表記する。 ならUIApplicationDelegateプロトコルに準拠 @interface XXXDelegate : NSObject <UIApplicationDelegate>{ } 解説 @protocol プロトコル名 @required 必須メソッドの宣言 @option オプションメソッドの宣言 @end メソッド名の指定 サンプル 例文</uiapplicationdelegate>
カテゴリ 既存クラスの拡張ができる。メソッドの拡張はできるが、インスタンス変数を拡張することはできない。宣言部 @interface UIView ( ExtraView ) -(void) additionMethod:( int )theNumber; @end 実装部 @implementation UIView ( ExtraView ) -(void)…
スレッドセーフにする @synchronized(self){ ...同時実行不可な部分 } 解説 同時に別々のスレッドから呼び出された場合、一方を待たせて、処理が終わってから実行します。 参照 例文
プロパティ Objective-C2.0から使用可能 プロパティ宣言 @property (nonatomic, readonly , getter=isWorking ) BOOL working 解説 retain retainメッセージを送る retainを指定したらreleaseすることを忘れずに。 retainかcopyかどちらか。copy copyメッセ…
Index>Objective-C Objective-C ARC(Auto Reference Counting) 基本型 @interface #import #pragma mark main() self イニシャライザ コンパイラ指示子 コンパイル スーパークラス ブロック構文(blocks)セレクタ(@selector)(→コンパイラ指示子) @interfa…
高速列挙(fast enumeration) for ( i in collection ) { } 解説 NSArray,NSSet,NSDictionaryなどNSFastEnumeratorプロトコルに準拠したオブジェクトで有効。 例文 高速列挙は本当に高速なのか試してみた。 #pragma mark NSArray:高速列挙は高速か? -(void…