Objective-C 和返回时自动释放

发布于 2024-10-20 18:22:58 字数 276 浏览 1 评论 0原文

两种方法

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

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

相同吗?

Are the two methods

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

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

identical?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

当梦初醒 2024-10-27 18:22:58

是的,这两种方法是相同的。每当你编写一个嵌套函数或多行相同的代码时,编译后都是一样的。

Yes the both methods are identical. Whenever you write a nested function or same code in multiple lines, it is all the same after compilation.

夏雨凉 2024-10-27 18:22:58

你可以在回报中做一切事情:

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

You could do everything in the return:

- (id) myThirdMethod {
    return [[[NSObject alloc]init]autorelease];
    }
撧情箌佬 2024-10-27 18:22:58

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

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

Yes they are identical, but all they do is to cause a compiler error.

[anObject] is not allowed. And NSObject anObject is also invalid syntax.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文