Objective-C和返回时自动释放

时间:2011-03-09 09:33:24

标签: objective-c autorelease

这两种方法

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

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

相同?

3 个答案:

答案 0 :(得分:3)

是的,两种方法都是相同的。无论何时在多行中编写嵌套函数或相同代码,编译后它们都是相同的。

答案 1 :(得分:2)

你可以在回报中做所有事情:

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

答案 2 :(得分:1)

是的,它们是相同的,但它们所做的只是导致编译器错误。

[anObject]是不允许的。 NSObject anObject也是无效的语法。