Objective-C 和返回时自动释放
Posted
技术标签:
【中文标题】Objective-C 和返回时自动释放【英文标题】:Objective-C and autorelease on return 【发布时间】:2011-03-09 09:33:24 【问题描述】:是两种方法
- (id) myFirstMethod
NSObject* anObject = [[NSObject alloc] init];
[anObject autorelease];
return anObject;
- (id) mySecondMethod
NSObject* anObject = [[NSObject alloc] init];
return [anObject autorelease];
一样吗?
【问题讨论】:
这两种方法实际上都无效——对象周围的括号不正确。 @Chuck - 对,他们只是错别字。已编辑。 【参考方案1】:是的,这两种方法是相同的。每当你写一个嵌套函数或多行相同的代码,编译后都是一样的。
【讨论】:
【参考方案2】:你可以在回报中做任何事情:
- (id) myThirdMethod
return [[[NSObject alloc]init]autorelease];
【讨论】:
谢谢,我可以 - 但对我的眼睛来说太丑了:)【参考方案3】:是的,它们是相同的,但它们所做的只是导致编译器错误。
[anObject]
是不允许的。而NSObject anObject
也是无效语法。
【讨论】:
以上是关于Objective-C 和返回时自动释放的主要内容,如果未能解决你的问题,请参考以下文章