NSObject
NSObjectクラスは全てのクラスのスーパーラスで、どのクラスでも必要となるメソッドが定義されています。
NSObjectのクラス階層
NSObject
NSObjectのメソッド
| メソッド | 説明 |
|---|---|
| +(id)alloc | インスタンスを生成する (例)[UILabel alloc]; |
| -(id)init | インスタンスを初期化する (例)[obj init]; |
| -(void)release | 参照カウンタを-1する (例)[obj release]; |
| -(id)retain | 参照カウンタを+1する (例)[obj retain]; |
| -(id)autorelease | 自動解放対象とする (例)[obj autorelease]; |
| -(int)retainCount | 参照カウンタを返す (例)int cnt = [obj retainCount]; |
| -(void)dealloc | メモリ領域の解放 (例)[obj dealloc]; |
| +(Class)class | クラスを返す (例)NSStringクラスのClassオブジェクトを取得する Class c = [NSString class]; |
| -(id)copy | インスタンスのコピーを返す (例)s1をコピーしてs1copyを作成する NSString *s1 = @"ほげ"; NSString *s1copy = [s1 copy]; |
| -(id)mutableCopy | インスタンスの可変コピーを返す (例)NSMutableArray *mar = [ar mutableCopy]; |
| -(BOOL)isEqual:(id)object | オブジェクトが同じであるかの比較 (例)BOOL b = [obj1 isEqual:obj2]; |
| -(BOOL)isMemberOfClass:(Class)class | クラスと同じであるかの判定 (※同じクラスである場合のみYES) (例)objがNSArrayクラスであるかを判定 BOOL b = [obj isMemberOfClass:[NSArray class]]; |
| -(BOOL)isKindOfClass:(Class)class | クラスのサブクラスであるかの判定 (※同じクラスかサブクラスの場合にYES) (例)objがNSStringクラスまたはそのサブクラスであるかを判定 BOOL b = [obj isKindOfClass:[NSString class]]; |
| -(NSString*)description | オブジェクトをNSString形式で表す (Javaでいう.toString()みたいなメソッドです。) (例)NSString *str = [obj description]; |
主要なメソッドのみ掲載しています。
NSObjectのメソッド
| メソッド名 | 説明 |
|---|---|
| -(void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay |
指定したタイミングでメソッドを呼び出す ※下記例文参照。 |
| -(void)performSelectorInBackground: (SEL)aSelector withObject:(id)arg |
指定したメソッドをバックグラウンドで実行する ※下記例文参照。 |
主要なメソッドのみ掲載しています。
NSObject例文
【指定したメソッドをn秒後に呼び出す】
// 2.5秒後にhogeメソッドを呼び出す
[self performSelector:@selector(hoge:) withObject:@"ほげ" afterDelay:2.5f];
// 呼ばれるhogeメソッド
-(void)hoge:(NSString*)str{
NSLog(str); // 「ほげ」 が表示される
}
【指定したメソッドをバックグラウンドで実行する】
// hogeメソッドに「ほげ」という文字列を引き渡しバックグラウンドで実行する
[self performSelectorInBackground:@selector(hoge:) withObject:@"ほげ"];
// 呼ばれるhogeメソッド
-(void)hoge:(NSString*)str{
NSLog(str); // 「ほげ」 が表示される
}

