0
A
回答
1
如果你想使用objc_msgSend,你必须将它转换为正确的类型。 我张贴你我如何只是用它在我的项目
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL{
SEL wk_sel = NSSelectorFromString(@"loadData:MIMEType:characterEncodingName:baseURL:");
((void (*)(id, SEL, id, id, id, id))objc_msgSend)(self,wk_sel,data,MIMEType,textEncodingName,baseURL);
}
之一,如果你喜欢一个更清洁sintax你可以使用一个函数指针的例子。 如果你的方法声明为:
- (void)doSomething:(id)arg0 withArgument:(float)arg1 err:(NSError **)err{}
你必须做这样的事情:
void (*objc_msgSendTyped)(id self, SEL _cmd, id something, float arg1, NSError**error) = (void*)objc_msgSend;
objc_msgSendTyped(self, @selector(doSomething:withArgument:err:), foo, bar, &error);
相关问题
- 1. 为什么这个类的方法没有这个参数?
- 2. 为什么没有没有参数的IsNullOrEmpty重载方法?
- 3. 为什么这个方法有一个'out'参数表示它没有设置?
- 4. 为什么我的Web API方法没有调用双参数?
- 5. 一个方法的输出与参数和没有参数有什么区别?
- 6. 提供三个参数时`str()`方法返回什么?
- 7. 在http.get observable上订阅方法:第三个参数是什么?
- 8. Node.js + Passport:done()方法中第三个参数'info'会发生什么?
- 9. 没有重载的方法添加取三个参数
- 10. 为什么工厂方法在GoF工厂方法中没有参数
- 11. 为什么不能在实现方法有一个参数
- 12. 为什么我不能有两个ArrayList参数的方法?
- 13. 为什么没有块参数的方法定义接受一个块?
- 14. 为什么我得到“没有重载的方法需要两个参数”?
- 15. 为什么glDeleteTextures()在OpenGL ES 2.0中有三个参数?
- 16. 为什么setParameter没有设置参数?
- 17. Liquibase addNotNullConstraint为什么没有initialDeferred参数?
- 18. 为什么参数没有更新?
- 19. 为什么collections.defaultdict的lambda没有参数?
- 20. “抽象类没有参数”:为什么?
- 21. 为什么没有Array.IsNullOrEmpty()方法?
- 22. 为什么Object [ID]没有方法'Animate'?
- 23. 为什么ObservableCollection没有RemoveAll方法?
- 24. 为什么DataTable.Rows没有.Where()方法?
- 25. 为什么GLAutoDrawable没有方法addMouseListener将
- 26. 为什么Rails没有belongs_to through方法?
- 27. 为什么NStepLSTM没有reset_state方法?
- 28. RandomAccess接口,为什么没有方法?
- 29. 为什么GLSurfaceView.Renderer中没有onSurfaceDestroyed方法?
- 30. 为什么没有Convert.toFloat()方法?
简短的回答:从来没有直接调用该函数。 – Avi
这不是正确的头文件;你想要'objc/objc-runtime.h'。 – trojanfoe