如何确定iOS(id)对象的结构?

时间:2012-01-19 04:50:59

标签: ios class casting nsstring nslog

当我从iOS应用程序调用某个函数时,它会返回id数据类型。我无法看到这个函数,所以我不知道它在做什么或返回类型到底是什么。

如果我使用NSLog("@"...)将其打印到控制台,我会得到一个与此类似的字符串: 2012-01-18 19:03:08.915 HelloWorld[165:707] Key Press State

我有什么方法可以确定这个基本Id对象的结构吗?我将如何获得该响应的特定部分,例如"Key press state"。字符串解析似乎是一个可怕的想法,但也许这是唯一的方法。也许数据真的只是一个NSString

谢谢!

2 个答案:

答案 0 :(得分:16)

试试这个:

NSLog(@"Mystery object is a %@", NSStringFromClass([mysteryObject class]));

答案 1 :(得分:2)

如果你查看<objc/runtime.h>,你会看到查询对象的类,方法选择器,ivars等的方法。但是,你通常不想这样做,因为它打破了封装并且可以导致您依赖可能在将来发生变化的实施细节,因此请小心。您可以阅读更多here