cómo crear y asignar un búfer C como parte de una clase C objetiva

mejor explicar con un ejemplo:

en mi AudioItem.h

#define ITEM_CAPACITY 100

typedef struct DataStruct {
    void *                          content;
    UInt32                          size;
} DataStruct;

typedef DataStruct *DataStructRef;

@interface AudioItem : NSObject
{        
    DataStructRef data;        
}

@property (assign, readwrite) DataStructRef data;

en AudioItem.m @synthesize data;

-(id)initWithID:(NSString *)itemID
{
    self = [super init];        
    data->content = malloc(ITEM_CAPACITY);
    return self;
}

El código de arriba se parece mucho aesta uno, pero me sale un BAD_EXEC_ERROR .. ¿cómo es que? La razón por la que me gustaría usar un búfer de C en lugar de un NSMutableData o lo que sea b / c. He intentado usar NSMutableData y siento que está ralentizando mi aplicación en tiempo real

Respuestas a la pregunta(1)

Su respuesta a la pregunta