如何找出objc_msgSend
的结果类型?目的C:objc_msgSend返回类型
从文档:
id objc_msgSend(id theReceiver, SEL theSelector, ...)
就是一切什么objc_msgSend
回报是id
型的,对不对?但有时函数返回一个合适的Objective C对象(当要求NSWindow + new时),有时它返回一个bool(这是一个C char
)。
如何区分这些不同的结果?我如何知道它是返回对象还是原始类型?
编辑:谢谢你的回复!还有一个问题:是不是至少可以判断返回的类型是原始类型还是适当的对象(并且可能通过object_getClass
查询)?
请注意,这种动态通常是要避免的; Objective-C实际上被设计成一个*静态编译的*语言,在运行时*时具有动态多态性。特别是,如果您尝试支持泛型C函数ABI(如果您尝试并支持所有变量的返回值,那么这将是必需的),您将碰到各种各样的地狱。 – bbum