Я предполагаю, что вы имели в виду:
objectA *objectA_1 = [[objectA alloc] init];
Вы должны отпускать объект только один раз.Это связано с тем, что каждый раз, когда словарь удаляет элемент, он автоматически вызывает функцию release для объекта, поскольку он автоматически сохраняет объект каждый раз, когда вы добавляете его в словарь.
Вместо этого попробуйте этот код:
dictA = [[NSMutableDictionary alloc] init];
objectA *objectA_1 = [[objectA alloc] init];
[dictA setObject:objectA_1 forKey:@"apple"];
[dictA setObject:objectA_1 forKey:@"japan"];
[dictA setObject:objectA_1 forKey:@"paris"];
[dictA setObject:objectA_1 forKey:@"pizza"];
[objectA_1 release];
Кроме того, вам необходимо реализовать метод description
вашего пользовательского объекта, чтобы NSLog знал, как его распечатать.