objective-c - 是否在(保留)正确的@property 上分配 self.string = @""?

标签 objective-c reference-counting retaincount

某种哲学问题。将常量字符串分配给(保留的)@property 是否合适?或者,我应该做 self.string = [NSString stringWithString:@""];

是否存在内存泄漏?如果它被过度释放怎么办?

它是一个常量字符串,那么它的行为方式是否与 NSString 对象相同?

如果属性是 (assign) 是否意味着它在运行循环后将无效?

最佳答案

是的,没关系。无论您采用哪种方式,常量字符串仍将被编译到您的程序中(因为无论如何您都必须在 [NSString stringWithString:@""] 中使用它)。常量字符串实际上并没有被保留/释放,但重要的是它的语义:你正在分配一个字符串(就你而言,它有一个 net +0 retainCount - 你没有 分配它,所以你不拥有它)到一个将拥有它的属性(property)。如果该属性是 (assign),那么它可能仍然可以使用常量字符串,但在自动释放池耗尽后它将在语义上无效。

关于objective-c - 是否在(保留)正确的@property 上分配 self.string = @""?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7195481/

相关文章:

c# - 无锁引用计数

interface - COM 对象到 COM 接口(interface)的 dynamic_cast 不会影响引用计数,是吗?

ios - 保留计数并从Fromview移除

ios - 不规则保留 NSNumbers 的计数

objective-c - 如何根据计算属性过滤来自 NSFetchedResultsController 的结果?

objective-c - 基于 View “Source List” NSOutlineView 不显示项目的图标和标题

string - 为什么这个字符串的引用计数为 4? (德尔福2007)

iphone - objective-c - 引用计数

iPhone - UILabel 同时包含多种字体的文本

ios - NSOperation 子类性能或泄漏