からオブジェクトdataWithBytesNoCopy:length:
を作成するためのメソッドを使用しています。 NSData
bytes
-(NSData *)dataFromBytes
{
...
void *data = malloc(bytes);
...
return [NSData dataWithBytesNoCopy:data length:bytes];;
}
アップルのドキュメントから:
返されたオブジェクトはバイトポインタの所有権を取得し、割り当て解除時に解放します。
呼び出し元関数で戻りデータオブジェクトを解放する必要がありますか?
-(void)testFunction
{
NSAutoreleasePool *nsp = [[NSAutoreleasePool alloc] init];
NSData *ldata = [mObject dataFromBytes];
NSlog(@"%@", ldata)//printing data
[nsp release];
NSlog(@"%@", ldata)//Not printing data //sometimes getting exc_bad_access
}