Convertendo NSObject para NSDictionary

Olá eu uma classe do tipo NSObject:

ProductDetails *details = [[ProductDetails alloc] init];
details.name = @"Soap1";
details.color = @"Red";
details.quantity = 4;

Eu quero passar o objeto "detalhes" para um dicionário.

Eu fiz,

NSDictionary *dict = [NSDictionary dictionaryWithObject:details forKey:@"details"];

Estou passando este comando para outro método que executa uma verificação na JSONSerialization:

if(![NSJSONSerialization isValidJSONObject:dict])

E estou sofrendo uma queda nesse cheque. Estou fazendo algo errado aqui? Eu sei que os detalhes que estou recebendo é um objeto JSON e estou atribuindo-o às propriedades na minha classe ProductDetails.

Por favor me ajude. Eu sou um noob em Objective-C.

Eu tentei agora:

NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:(NSData*)details options:kNilOptions error:&error];

Tudo o que preciso aqui é uma maneira fácil de converter detalhes em NSData.

Eu notei que eu tenho uma matriz dentro do meu objeto pode ser por isso que todas as maneiras que eu tentei está jogando uma exceção. No entanto, uma vez que esta questão está se tornando grande, eu iniciei um outro tópico de questão para o qual exibi os dados que estou obtendo dentro do objeto -https://stackoverflow.com/questions/19081104/convert-nsobject-to-nsdictionary

questionAnswers(9)

yourAnswerToTheQuestion