某种哲学问题。将常量字符串分配给(保留的)@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/