Cocoa API解説(macOS/iOS)

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。

目次

Objective-C

自動参照カウント(ARC)

アーク 設定 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としま…

ブロック構文(blocks)

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

プリプロセッサ制御行 #import 解説 ヘッダファイルのインポート 基本的に#includeと同じだが、#importは一度読み込んだヘッダファイルを複数回インクルードしない。システムのヘッダファイルには<>をつける #import フレームワーク名/ヘッダファイル名> #im…

main()

プログラム実行時に最初に呼び出される関数 @interface 解説 引数 フレームワーク クラス Instance Methods 使用可能 参照 例文

コンパイラ指示子

コンパイラ指示子 @private 内部からのアクセスのみ @protected 宣言したクラスと継承するクラスからアクセス @public どこからでもObjective-C 2.0 64ビットランタイムシステムでのみ使用可能 @package フレームワーク内部では@public、外部に対しては@priv…

self

インスタンスオブジェクト自身 [self retain]; 解説 インターフェース部の宣言 引数 フレームワーク クラス Instance Methods 使用可能 参照 例文

@interface

継承関係の宣言 @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型の変数には適用できない。 解説 サンプル 例文

ガーベジコレクション

解説 サンプル 例文

@class

コンパイラ指示子クラスであることを宣言 解説 サンプル 例文

インスタンス変数のアクセス

@private 内部からのアクセスのみ @protected 宣言したクラスと継承するクラスからアクセス @public どこからでも 解説 サンプル 例文

メソッド

解説 サンプル 例文

セレクタ

コンパイラはclang 解説 サンプル 例文

LLVM

コンパイラはclang 解説 サンプル 例文

カプセル化

解説 サンプル 例文

メッセージ式

解説 サンプル 例文

プロトコル

プロトコル で表記する。 ならUIApplicationDelegateプロトコルに準拠 @interface XXXDelegate : NSObject <UIApplicationDelegate>{ } 解説 @protocol プロトコル名 @required 必須メソッドの宣言 @option オプションメソッドの宣言 @end メソッド名の指定 サンプル 例文</uiapplicationdelegate>

カテゴリ

カテゴリ 既存クラスの拡張ができる。メソッドの拡張はできるが、インスタンス変数を拡張することはできない。宣言部 @interface UIView ( ExtraView ) -(void) additionMethod:( int )theNumber; @end 実装部 @implementation UIView ( ExtraView ) -(void)…

@synchronized

スレッドセーフにする @synchronized(self){ ...同時実行不可な部分 } 解説 同時に別々のスレッドから呼び出された場合、一方を待たせて、処理が終わってから実行します。 参照 例文

プロパティ

プロパティ Objective-C2.0から使用可能 プロパティ宣言 @property (nonatomic, readonly , getter=isWorking ) BOOL working 解説 retain retainメッセージを送る retainを指定したらreleaseすることを忘れずに。 retainかcopyかどちらか。copy copyメッセ…

Objective-C

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…