分配和释放 VS。自动释放。为啥和何时?
Posted
技术标签:
【中文标题】分配和释放 VS。自动释放。为啥和何时?【英文标题】:allocating and releasing VS. autoRelease. why and when?分配和释放 VS。自动释放。为什么和何时? 【发布时间】:2011-03-23 06:55:58 【问题描述】:我看到很多人都在分配和释放 NSStrings。
我知道这样做的好处是字符串会立即释放,而不是通过 autoRelease。
我的问题:
-
它有效吗?我应该总是更喜欢在 autoRelease 上分配和释放吗?
更广泛的方法 - 立即分配和释放,然后再次分配或在 dealloc 中分配、使用和释放。
将不胜感激。
谢谢
沙尼
【问题讨论】:
【参考方案1】:-
在大多数情况下,这无关紧要。我认为你应该使用自动释放,因为它使代码更简单,@"string" 快捷方式非常优雅。
基本区别在于发布发生的时间点。就像我说的,在大多数情况下,它没有任何区别。如果您想更紧密地控制发布时间,那么您也可以通过滚动自己的
NSAutoreleasePool
池来实现自动发布。
【讨论】:
【参考方案2】:我不明白你如何重用一个 NSString。重用 NSMutableString 实例可能会比重新创建它稍快一些,但您不会看到差异。专注于代码的简单性和可维护性。
我认为您的问题是使用 [[NSString alloc] init] 还是 [NSString string]。只要性能不是问题,总是选择最简单的。那将是自动发布的版本,因为您不需要自己发布它。
【讨论】:
以上是关于分配和释放 VS。自动释放。为啥和何时?的主要内容,如果未能解决你的问题,请参考以下文章