Error con NSJSONSerialization: tipo no válido en escritura JSON (Menú)

Tengo una aplicación que utiliza datos básicos con 3 entidades con atributos muy similares. La relación es como:

Branch - >> Menú - >> Categoría - >> FoodItem

Cada entidad tiene una clase asociada: ejemplo

stoy intentando generar una representación JSON de los datos en la base de datos sqlite.

//gets a single menu record which has some categories and each of these have some food items
id obj = [NSArray arrayWithObject:[[DataStore singleton] getHomeMenu]]; 

NSError *err;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:obj options:NSJSONWritingPrettyPrinted error:&err];

NSLog(@"JSON = %@", [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);

Pero en lugar de JSON, recibo un error SIGABRT.

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (Menu)'

¿Alguna idea de cómo solucionarlo o cómo hacer que las clases de entidad (Rama, Menú, etc.) sean compatibles con la serialización JSON?