たとえば、NSMutableArray:
NSMutableArray* a1 = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* a2 = [NSMutableArray arrayWithCapacity:10];
手動参照カウントでは、2 行目で自動解放されたオブジェクトが返されました。ARC を有効にすると、2 番目は __autoreleasing オブジェクトを返し、もう 1 つは返しませんか? もしあれば、違いは何ですか?
初期化しようとしているクラスが、ARC に変換されたカスタム クラスであり、変換によって初期化子から autorelease メッセージが削除された場合:
MyClass b1 = [[MyClass alloc] initWithNumber:1];
MyClass b2 = [MyClass myClassWithNumber:1];
// MyClass implementation of myClassWithNumber
+(id) myClassWithNumber:(int)num
{
return [[self alloc] initWithNumber:num];
}
b1 と b2 に違いはありますか? a1 と a2 の作成方法と違いはありますか?