可能重複:
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