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