Last Update 2013/02/13
TOP - Objective-C - クラス - super
メソッド定義内において、「super」はスーパークラスのメソッドを利用する際に利用します。
メソッドがオーバーライドされて定義されている場合でも、スーパークラスのメソッドが呼び出されます。
メソッドがオーバーライドされて定義されている場合でも、スーパークラスのメソッドが呼び出されます。
(例)
MyTestClass.h
MyTestClass.h
#import <Foundation/Foundation.h>
@interface MyTestClass : NSObject
{
NSString *messageString;
}
- (id)initWithMessage: (NSString *)msgString;
- (NSString *)messageString;
@end
MyTestClass.m
#import "MyTestClass.h"
@implementation MyTestClass
- (id)initWithMessage: (NSString *)msgString
{
if (self = [super init]) // ここで使用
{
messageString = [[NSString alloc] initWithString:msgString];
}
return self;
}
- (NSString *)messageString
{
return messageString;
}
@end
main.m
#import "MyTestClass.h"
int main (void)
{
MyTestClass *mtc = [[MyTestClass alloc] initWithMessage:@"test"];
NSLog(@"message : %@", [mtc messageString]);
return 0;
}
実行結果
message : test