可能重复:
Properties and Instance Variables in Objective-C 2.0Objective-C的属性有或没有实例变量
我使用性质仅高德不需要任何真正的得到验证时,或设定一个我正在创作的类的值。
Ex:
@interface ClassB : NSObject
{
// No ivars
}
@property (nonatomic, retain) ClassA *obj;
@property (nonatomic, retain) NSString *str;
每当我打电话,我总是用self.obj/self.str或[自OBJ]/[自STR]类中的这些方法。这样做是为了设置你被迫通过属性的对象的状态,以便由编译器生成的getter和setter更仔细地管理引用。有了这个说法,我可以用这种方式创建我的类吗?另外,在没有ivar的情况下,是否在@implementation文件中覆盖“dealloc”方法中需要“释放”?
是否会更好的编程实践(直到ARC代码)做一个指针分配为零,或做一个发布? – 5StringRyan
如果您保留了一个对象,则必须将其释放。只要将指针设置为零就会产生泄漏 - 你失去了对象的引用,但是你永远不会释放该对象。如果你想在释放它之后将指针设置为零,请随意。有些人喜欢看指针变为零。尽管如此,它在-dealloc中并没有什么帮助,因为无论如何,“self”即将被释放。 – Caleb
在BJ Homers示例中,由于他直接分配self.obj/self.str = nil,因为它们没有被释放并且指针指定为零,是否会创建泄漏? – 5StringRyan