Obj-C에서 메소드를 시도하고 있지만 순수한 C 함수를 전달하려고합니다. 이것은 내가 어떻게 든 selector를 할당하거나 수동으로 objc_method
구조체를 구축해야한다는 것을 의미합니다. 어쩌면 어떻게 든 NSInvocation
을 활용할 수 있을까요?Objective-C에서 콜렉터없이 C 함수의 selector를 할당하십시오.
Obj-C는 C의 엄격한 수퍼 세트이므로 완벽하게 호환됩니다. 내가 지금가는 것을
:
main.m : 나는 (내가 피할 싶습니다) @implementation
내부의 C 기능을 퍼팅 시도하고 심지어 다음은 작동하지 않았다
#include....
CFStringRef strRet(void) {
return CFSTR("retString");
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
SEL _strRet = sel_registerName("strRet");
//I also tried: SEL _strRet = NSSelectorFromString(@"strRet");
Class bundle = objc_getClass("NSBundle");
method_exchangeImplementations(
class_getInstanceMethod(bundle, sel_registerName("anySelector")),
class_getInstanceMethod(bundle, sel_registerName("_strRet")
);
.
잘못 이해하면 정확한 정보를 제공해주세요. 당신은 순수한 C 함수를 전달하고 싶습니까 ?? 코드 스 니펫에 C 함수가 표시되지 않습니다. 좀 더 많은 코드를 쿼리를 수정할 수 있습니까 ?? –