Objective-C中的参考计数警告?
我一直认为自己是一个垃圾收集势利小人 - 尽管对C ++有着深深的爱好,我发现自己嘲笑开发人员,当他们给出选项时,他们会主动选择使用没有(读取:丢失)垃圾收集的语言。
然后我遇到了Objective-C。哇!它的引用计数系统看起来非常简单 - 我甚至可以说优雅。在为OSX开发时,开发人员可以选择使用时髦的GC;在为iOS开发时,开发人员仍然坚持使用引用计数。
我的问题是:
如果我正在开发一个可能被移植到iOS的OSX应用程序,那么Objective-C的引用计数系统是否足够耗时(开发方面和错误修复)以保证忽略应用程序的第一个版本?
如果我依赖引用计数*,我可能会遇到什么问题,假设我不够聪明地构建任何恶魔复杂的循环数据结构?有了像
autorelease
这样的功能,这一切看起来都很简单,但我知道,如果真的如此,Apple就不会投入精力去创建垃圾收集器。我应该注意什么?
*我知道即使我扔掉retain
s和release
s(他们也会被忽略)我也可以使用垃圾收集器。但是,考虑到非GC应用程序经常使用RAII,我不明白如果代际GC要“替换”对retain
和release
的调用,这将如何工作。资源是否可能迟发?
没有找到相关结果
已邀请:
1 个回复
瞥同忙接