Как работает JSONRepresentation класса NSDictionary? - PullRequest
6 голосов
/ 10 апреля 2011

Некоторое время назад я выяснил, как обрабатывать JSON в Objective-C (iPhone), и нашел там одну странную вещь.

Этот вызов меня озадачивает:

NSString* jsonString = [jsonDict JSONRepresentation];

На самом деле jsonDict является экземпляром класса NSDictionary и согласно Ссылка на класс NSDictionary NSDictionary не имеет этот метод JSONRepresentation.Я чувствую себя обманутым где-то, я знаю, что это работает, но не могу понять, как.

Кто-нибудь может объяснить?

Спасибо

Ответы [ 3 ]

6 голосов
/ 10 апреля 2011

Это пример «Категории», которая является способом добавления методов к существующим классам.

http://developer.apple.com/library/ios/#documentation/general/conceptual/DevPedia-CocoaCore/Category.html

5 голосов
/ 10 апреля 2011

Взгляните на JSON Framework , откуда появился этот метод.

3 голосов
/ 10 апреля 2011

Фреймворк помещает категорию в NSDictionary. Категории используются для добавления дополнительных методов в класс. Более подробная информация о том, как работают категории и реализована в документации. Теперь, когда вы знаете правильный термин для него, его будет легко найти.

...