我一直在使用使用一個NSMutableData實例的字節,而允許它被自動釋放
NSMutableData* mutableData = [NSMutableData dataWithLength: someLength];
void* bitmapData = [mutableData mutableBytes];
CGContextRef context = CGBitmapContextCreate(bitmapData,...);
// ...use context
CGContextRelease(context);
我有一個自動釋放池的地方,但是看着這儀器時,mutableData
似乎不被釋放。
我想過使用下面的alloc
/init
,但我不確定發送release
是否會清除bitmapData
。
NSMutableData* mutableData = [[NSMutableData alloc] initWithLength: someLength];
void* bitmapData = [mutableData mutableBytes];
[mutableData release];
//...
在這裏使用NSMutableData
的正確方法是什麼?
我認爲使用NSMutableData
而不是malloc()
和free()
會很方便,因爲它會自動發佈。但現在我不確定這是否屬實。
是的,即使在CGContextRelease()之後它也不會釋放。我不會將原始數據或NSMutableData傳遞給上下文創建函數。 – eugene 2011-02-04 15:12:26