Написать программу, сериализующую Objective-C объекты в человеко-читаемый формат. Для демонстрации возможностей программы разработать несколько наборов тестовых данных, которые необходимо составить так, чтобы можно было продемонстрировать 3 ошибки разного рода (например, "переданный объект не является словарем", "переданный словарь содержит объект недопустимого типа", "один из ключей является объектом недопустимого типа").
- Cериализатор на входе должен принимать только объекты класса NSDictionary (тип входного параметра - id), а на выход должен отдавать объект класса NSString. В случае, если во время сериализации произошла ошибка, то на выход должен быть отправлен nil. Вместе с этим у пользователя класса должна иметься возможность получить сведения о случившейся ошибке (пользоваться которой он будет по желанию). Передачу сведений об ошибке реализовать стандартным способом (по средствам т.н. out-параметра).
- Сериализуемые словари могут включать в себя объекты всех указанных ниже типов (классов), а ключами в них могут быть только строки и / или числа.
- Сериализуемые коллекции (множества и массивы) могут включать в себя объекты всех указанных ниже типов (классов).
- Уровень вложенности структуры данных не ограничен.
- Сведения об ошибке должны включать в себя как код ошибки (выраженный в виде одного из элементов перечисления), так и детальное описание (например, указать класс объекта, который привел к возникновению проблемы).
- NSDictionary,
- NSArray,
- NSSet,
- NSNumber,
- NSNull,
- CGRect (обернутый в NSValue).