使用objective-c中的运行时库可以解决哪些问题?我认为运行时库o_o
没有实际用途答案 0 :(得分:8)
征服的主要问题是使语言有效。如果没有ObjC运行时库,则没有ObjC程序可以工作。
ObjC运行时库实现向对象发送消息,从类中查找方法实现,获取类数据等。所有这些都无法在编译时完成,因此需要运行时支持。这种对运行时支持的需求催生了ObjC运行时库。
如果它与Objective-C相关,那么运行时库很可能就在它后面。
此共享库提供支持 对于动态属性 Objective-C语言,就是这样 与所有Objective-C相关联 应用
此参考主要用于 在两者之间发展桥梁层 Objective-C和其他语言,或 用于低级调试。
您可能需要查看功能列表。有些人,比如objc_msgSend
,会执行您可能错误认为理所当然的行为。例如,电话:
[foo bar:4];
实际编译为:
objc_msgSend(foo, sel_getUid("bar:"), 4);
或沿着这些方向的东西。
答案 1 :(得分:4)
Zneak的回答是正确的。如果您对通过显式调用运行时可以做什么感到好奇,那就是反射(finding information about classes),修改现有类,changing method implementations等等,这些都是在程序运行时完成的。