當我打電話readDataOfLength:
上NSFileHandle
情況下,我需要釋放返回NSData
?目前我不是,但我想擺脫這種嘮叨的疑問。NSFileHandle -readDataOfLength:return autoreleased NSData?
回答
都能跟得上。可可的memory management rules說,你只有自己(因此需要釋放)對象從名稱中包含的「新」一個方法返回,「ALLOC」,「保留」,或「複製」(NARC)。由於該方法不包含這些內容,因此您不需要釋放它。
是Objective C的庫中觀察到非常一致的標準是開頭的「黃金」或「複製」(和,我想,其他的一些模糊的動詞)返回一個保留對象的方法,而一切的回報一個自動釋放的對象。
任何異常,應充分證明的規格。
晦澀的詞是「新」,這幾乎沒有人使用(這可能會改變人們採用ARC ......),另外一個,毫不隱晦可言,是'retain'。請注意,僅僅因爲方法不返回擁有引用並不意味着它返回一個自動釋放對象。 –
如果某個方法沒有返回自動釋放對象(並且不是所指出的異常之一),那麼它必須記錄。 (這適用於用戶編寫的方法以及Objective C庫。) –
如上所述,不真實。我想你的意思是說「如果一個方法*返回一個擁有引用*(並且不遵循命名模式),那麼它*必須*被記錄下來」。那是真實的。一個方法可以返回一個對象而不返回所有權或自動釋放該對象。 –
- 1. autoreleased池說明
- 2. NSFileManager&NSFileHandle?
- 3. NSFileHandle readInBackgroundAndNotify和NSMenu
- 4. 與NSFileHandle&NSSocketPort
- 5. NSFileHandle fileHandleForWritingAtPath:return null!
- 6. NSFileHandle和scanf在Xcode 4.5
- 7. NSFileHandle writeData:異常處理
- 8. autoreleased沒有到位池
- 9. Objective-C返回Autoreleased副本
- 10. autoreleased沒有池警告?
- 11. 從NSURL失敗NSFileHandle
- 12. 如何使用NSFileHandle
- 13. 正確使用NSFileHandle
- 14. iOS - 從NSFileHandle或NSPipe創建一個NSURL
- 15. 如何使用NSFileHandle從文件
- 16. NSFileHandle fileHandleForReadingFromURL拋出異常
- 17. 如何從NSFileHandle *獲取FILE *?
- 18. NSFileHandle readInBackgroundAndNotify不起作用
- 19. 在Swift 3上使用NSFileHandle
- 20. NSFileHandle offsetInFile如何工作?
- 21. NSFilehandle並替換一條線
- 22. NSData - > UIImage - > NSData?
- 23. nsdata到nsstring到nsdata
- 24. NSData的NSArray的NSData?
- 25. NSData - > UIImage - > NSData
- 26. 即使對自己,對象仍然autoreleased
- 27. class NSCFData autoreleased沒有到位池
- 28. NSString componentsSeparatedByString:是否返回autoreleased數組?
- 29. UIView不autoreleased。我的問題在哪裏?
- 30. NSCFString autoreleased沒有到位 - 只是泄漏?
NARC,由ARC取代:) – jtbandes
哈哈,那確實... –
感謝。 ** NARC **是一個很棒的助記符。現在我可以在晚上睡覺。 – SSteve