在C#中使用(){...}与Cocoa中的autoreleasepool {...}具有​​相同的用途吗?

时间:2016-12-02 22:31:04

标签: c# objective-c cocoa nsautoreleasepool

我在C#中发现了using(){} - > Uses of "using" in C#

我知道autorelease{}using(){}不同,因为cocoa使用ARC而C#使用GC。 - > Is it necessary to use autoreleasepool in a Swift program?

我只想向那些使用过两者的人确认,如果他们确实服务于同一目的。

编辑:我找到了第三方C#编译器,它似乎将这些想法结合在一起。

  

RemObjects C#还通过using(__autoreleasepool)语法支持(很少需要)自动释放池的手动声明。

http://www.elementscompiler.com/elements/hydrogene/cocoa.aspx

C#中的using(){...}是否与Cocoa中的autoreleasepool{...}具有相同的用途?

1 个答案:

答案 0 :(得分:3)

不,他们是不同的。

C#的使用声明是关于资源获取和处置的。这通常是一个外部资源,例如文件,其中获取正在打开文件,处理正在关闭它。

Objective-C的自动释放池是关于控制内存对象的生命周期。在池耗尽时放置在池中的对象,对于默认池,在事件循环的每次迭代结束时释放该对象。