3

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

有内存泄漏吗?如果超载了怎么办?

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

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

4

1 回答 1

6

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

于 2011-08-25T18:42:40.237 回答