Objective c 如何导入<;NSObjCRuntime.h>;要使用objc_msgSend
我想导入运行时的头以使用objc_msgSend,但我得到:Objective c 如何导入<;NSObjCRuntime.h>;要使用objc_msgSend,objective-c,ios,Objective C,Ios,我想导入运行时的头以使用objc_msgSend,但我得到: error: NSObjCRuntime.h: No such file or directory 我应该在标题搜索路径中添加一些内容吗?您需要包含(您可以在/usr/include/objc中找到相关的标题)并链接到objc(/usr/lib/libobjc.dylib)库。导入 但你可能需要 #import <objc/runtime.h> #导入 upd:由于iOS 7#导入被替换为#导入,但我建议使用#导入
error: NSObjCRuntime.h: No such file or directory
我应该在标题搜索路径中添加一些内容吗?您需要包含
(您可以在/usr/include/objc
中找到相关的标题)并链接到objc
(/usr/lib/libobjc.dylib
)库。导入
但你可能需要
#import <objc/runtime.h>
#导入
upd:由于iOS 7#导入
被替换为#导入
,但我建议使用#导入
无论如何在使用Xcode 6及更高版本时,在#包含
之后会出现错误。可以这样解决
#include <objc/message.h>
void foo(void *object) {
typedef void (*send_type)(id, SEL, int);
send_type func = (send_type)objc_msgSend;
func(object, sel_getUid("foo:"), 5);
}
#包括
void foo(void*对象){
类型定义无效(*发送类型)(id、SEL、int);
发送类型func=(发送类型)objc\u msgSend;
func(对象,sel_getUid(“foo:”),5);
}
成功了!你能告诉我你在哪里找到的吗?我浏览了苹果文档,谷歌代码搜索,什么都没有!方法objc\u msgSend
在
中声明,而不是在
中声明。因此,隐式声明库函数将得到警告。