Как определить структуру объекта iOS (id)? - PullRequest
2 голосов
/ 19 января 2012

Когда я вызываю определенную функцию из моего приложения для iOS, она возвращает тип данных id.Я не могу заглянуть в эту функцию, поэтому я не знаю, что она делает или что на самом деле является типом возвращаемого значения.

Если я распечатываю его на консоли, используя NSLog("@"...), я получаю строку, подобную этой: 2012-01-18 19:03:08.915 HelloWorld[165:707] Key Press State.

Можно ли как-то определить структуру этого основного объекта Id?Как бы я получил конкретную часть этого ответа, например "Key press state".Разбор строк кажется ужасной идеей, но, возможно, это единственный способ.Возможно, данные на самом деле просто NSString?

Спасибо!

Ответы [ 2 ]

16 голосов
/ 19 января 2012

Попробуйте это:

NSLog(@"Mystery object is a %@", NSStringFromClass([mysteryObject class]));
2 голосов
/ 19 января 2012

Если вы заглянете в <objc/runtime.h>, вы увидите методы для запроса объекта относительно его класса, селекторов методов, ivars и т. Д. Однако вы обычно не хотите этого делать, поскольку это нарушает инкапсуляцию и может привести кВы полагаетесь на детали реализации, которые могут измениться в будущем, поэтому будьте осторожны с этим.Вы можете прочитать больше здесь .

...