先日Xcode 4.3がリリースされました。Xcode 4.3ではclangのバージョンが3.1となり、instancetypeという型をサポートするようになりました。 返り値のid型の推論 instancetypeの話の前に、id型の返り値について考えます。Cocoaでは、+ allocや- initといったメソッドは軒並みid型の値を返すようになっています。基本的に、id型の値はどのようなオブジェクト参照型にも代入できることになっています。 しかし、clangは以下のようなコードに警告を発します。 NSString *myBlog = [[NSURL alloc] initWithString:@"http://takebayashi.asia/"]; + allocも- initWithStringも返り値がid型なので本来ならばNSString *型の変数に代入しても文句は言われな