2011-03-09 11 views
1

上のObjective-Cと自動解放は、二つの方法リターン

- (id) myFirstMethod 
{ 
    NSObject* anObject = [[NSObject alloc] init]; 
    [anObject autorelease]; 
    return anObject; 
} 

- (id) mySecondMethod 
{ 
    NSObject* anObject = [[NSObject alloc] init]; 
    return [anObject autorelease]; 
} 

同じではありますか?

+0

どちらの方法は、実際には有効である - オブジェクトの周りのブラケットが正しくありません。 – Chuck

+0

@Chuck - そうですね、ちょうどタイプミスです。編集されました。 – SK9

答えて

3

はい両方の方法が同じです。ネストされた関数や同じコードを複数の行に書くと、コンパイル後はすべて同じになります。

1

はいこれらは同じですが、コンパイラエラーが発生することがあります。

[anObject]は許可されません。また、NSObject anObjectも無効な構文です。

+0

これは私のタイプミスです。編集されました。 – SK9

2

あなたはお返しにすべてを行うことができます:

- (id) myThirdMethod { 
    return [[[NSObject alloc]init]autorelease]; 
    } 
+0

ありがとう、私は - 私の目にはあまりにも醜いことができます:) – SK9