こんな感じで使う(上記サイトからコピー)。
@implementation TextViewController - (instancetype)init { self = [super initWithNibName:@"TextViewController" bundle:nil]; if (self) { //... } return self; }
以下、引用
と書いてあり、@interface の中で使うと、指定の型チェックを行うことが出来る機能のようです。つまり、サブクラスの中で戻り値の型を適当に定義したときにエラーが表示されるようになるようです。idの場合は、基本的にどんな型を返してもエラーになりませんが、instancetypeを使うことによって、型チェックの機能をコンパイラで使用することが出来ます。
なるほど。なお
この instancetype は、Clang 3.0, xcode 4.3 から使用できる機能のようです。ただ、条件として、メソッドの戻り値にしか使用できないという条件があるようで、だそうです。
0 件のコメント:
コメントを投稿