0
我有一個C API我打電話到如下:[字節]是否自動釋放內存而不必使用免費?
- (NSData*)getFileContents {
NSData *fileContents;
//do something
return fileContents;
}
-(void*) manipulateFile {
UInt8 *data = (UInt8*) [[self getFileContents] bytes];
UInt32 dataLength = (UInt32)[[self getFileContents] length];
//call some C API with the data and dataLength value
}
現在我的,因爲我沒有顯式調用free(data)
我想知道什麼是bytes
調用的引擎蓋下發生的問題
當我的程序崩潰時(哈哈),我的想法很多。我只是想知道爲什麼是這樣的情況以及發生了什麼。對不起應該已經清楚 – ExceptionHandler
'bytes'屬性傳遞給你一個由'NSData'實例擁有的指針。 'NSData'實例擁有那個內存。它負責它。它沒有給你一個副本。因此,既然你不擁有指針,你就不能釋放它。 – rmaddy