在我的init方法中使用点表示法将retain属性初始化为nil是不是一个坏主意?
对于像这样的普通房产:
@property (nonatomic, retain) id foo;
Run Code Online (Sandbox Code Playgroud)
在我设置的init方法中说self.foo = nil.合成的方法首先释放或自动释放foo(不完全确定潜在的实施).被fooguaranted第一setter或getter调用之前是零?或者它会指向随机垃圾,除非我明确设置foo = nil没有点符号?
initialization properties reference-counting objective-c dealloc
注意:通常在dealloc方法中,您应该直接释放对象实例变量(而不是调用set访问器并传递nilas参数),如下例所示:
- (void)dealloc {
[property release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
但是,如果使用现代运行时并合成实例变量,则无法直接访问实例变量,因此必须调用访问器方法:
- (void)dealloc {
[self setProperty:nil];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
iOS应用程序开发中的现代运行时到底是什么?