Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 等同于ObjC模块初始化器的Swift_Objective C_Swift_Code Injection_Dylib - Fatal编程技术网

Objective c 等同于ObjC模块初始化器的Swift

Objective c 等同于ObjC模块初始化器的Swift,objective-c,swift,code-injection,dylib,Objective C,Swift,Code Injection,Dylib,首先,当我的应用程序加载到内存中时,我尝试在应用程序中执行代码(仅从我的Swift框架中执行!) 通常,当我的框架加载到内存中时,我会使用这个ObjC方法来执行代码 在Swift中是否有与此等效的内容? static void __attribute__((constructor)) initialize(void){ NSLog(@"==== Code Injection in Action===="); /* My Code */ } 我发现: (但也仅在O

首先,当我的应用程序加载到内存中时,我尝试在应用程序中执行代码(仅从我的Swift框架中执行!)

通常,当我的框架加载到内存中时,我会使用这个ObjC方法来执行代码

在Swift中是否有与此等效的内容?

static void __attribute__((constructor)) initialize(void){
    NSLog(@"==== Code Injection in Action====");
    /*
    My Code
    */
}
我发现:

(但也仅在ObjC中解释)


有什么想法吗?

目前,Swift没有此功能。您可以为您的框架定义一个初始化函数,并要求您的客户在使用任何其他API之前调用它,也可以将Objective-C文件混合到项目中。

我知道,但当我将两者与桥接器混合使用时,出现了许多并发症header@JohnSmith您可以使用Objective-C运行时在不使用桥接头的情况下执行此操作。看到我对@JohnSmith的回答了吗?你看到的确切行为是什么?ObjC代码已经执行,但它不调用Swift代码。问题是我的项目叫做C-Injection,它只有在我编写C_Injection时才起作用,但无论如何,感谢
\uu属性(构造函数)
甚至在
+[NSObject initialize]
之前运行,不过,@CharlesSrstka,IIRC.@JoshCaswell是的,这就是我最初回答这个问题的原因;我一直在这件事上来回奔波。从概念上讲,这是一回事;如何使用Swift无法使用的Objective-C初始化挂钩。@JoshCaswell啊,再仔细想想,你可能是对的,这在技术上不是同一个问题。“我想知道我是否能收回一张重复的选票。”“查理斯斯特卡,别担心。”。我可以自己重新打开它,但让我先打电话给马丁。@MartinR:你对上面的事有什么想法吗?
static void __attribute__((constructor)) initialize(void){
    NSLog(@"==== Code Injection in Action====");
    /*
    My Code
    */
}