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); // 「ほげ」 が表示される
}