2
比方說,我有這樣的代碼:返回指向不同對象的指針的方法是否自動分配並初始化其他對象?
NSString *inspDate = @"20120515";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd"];
NSDate *inspectionDate;
inspectionDate = [dateFormatter dateFromString:inspDate];
當我檢查,看看它的工作原理(NSDate
包含格式正確的數據),它......但是爲什麼呢?
在這裏,我經過的步驟:
內存爲
NSDateFormatter
是越來越分配和堆實例化。dateFormatter
指向該位置,得到它:NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
現在
dateFormatter
被告知如何解釋NSString
的一個日期,OK:[dateFormatter setDateFormat:@"yyyyMMdd"];
這裏是我朦朧的一部分在,
inspectionDate
指針設置爲零。它不指向任何東西:NSDate *inspectionDate;
如何
dateFormatter
返回一個指向NSDate
在沒有alloc
或init
叫inspectionDate
?執行dateFromString
執行alloc
和init
的執行情況嗎?inspectionDate = [dateFormatter dateFromString:inspDate];
幫助我想像這將是一個巨大的幫助。謝謝!
...並自動釋放返回的日期。 – jrturton
@jrturton更新了答案以明確說明。 –
'dateFromString'負責爲我分配和初始化'NSDate'對象,我只是使用我的'inspectionDate'指針指向其生成的堆。謝謝你,先生! – kevmalek