相关疑难解决方法(0)

我可以将Swift与C++混合使用吗?像Objective - C .mm文件一样

我刚刚将.m文件更改为.mm并使用C++.有没有办法用Swift做同样的事情?

c++ objective-c swift

128
推荐指数
7
解决办法
8万
查看次数

QT运行Objective-C代码

我正在尝试在Mac应用程序上运行本机对象c代码。

我的代码如下:

MainWindow.h:

#ifdef Q_OS_MAC
    #include <Carbon/Carbon.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <stdio.h>

    #include <mach/mach_port.h>
    #include <mach/mach_interface.h>
    #include <mach/mach_init.h>

    #include <IOKit/pwr_mgt/IOPMLib.h>
    #include <IOKit/IOMessage.h>
#endif
Run Code Online (Sandbox Code Playgroud)

MainWindow.cpp:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);


    #ifdef Q_OS_MAC
    [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver: self
            selector: @selector(receiveSleepNote:)
            name: NSWorkspaceWillSleepNotification object: NULL];
    #endif

}

#ifdef Q_OS_MAC
- (void) receiveSleepNote: (NSNotification*) note
{
    NSLog(@"receiveSleepNote: %@", [note name]);
}
#endif
Run Code Online (Sandbox Code Playgroud)

但是正在收到似乎QT无法理解代码结构的错误:

application.cpp:错误:预期的外部声明-(void)receiveSleepNote:(NSNotification *)注意^

qt objective-c

5
推荐指数
1
解决办法
3276
查看次数

如何在 Qt 应用程序中集成 Swift 代码

我知道如何objective-c在我的QtApplication. 通常MyQtApplication.pro文件包括像这样的objective-c.mm文件,它可以做到这一点并且很容易。

# MyQtApplication.pro
ios {
    CONFIG  += objective_c
    OBJECTIVE_SOURCES += SomeObjectiveCSource.mm
    HEADERS           += SomeObjectiveCSource.hpp
}
Run Code Online (Sandbox Code Playgroud)

问题:
有没有办法包含.swift文件?因此,在QtApplication 中C++类包含、构建和调用Swift代码?难道Qt的现在正式支持呢?有我可以研究的具体例子吗?

我确实研究了这个讨论。但我正在寻找一个具体的例子。

或者.swift从 .mm 文件中调用文件中的 API,该文件在我的 Qt 应用程序中充当桥梁?如果可能的话,我正在寻找具体的例子。

qt qmake qt5 swift

5
推荐指数
0
解决办法
584
查看次数

标签 统计

objective-c ×2

qt ×2

swift ×2

c++ ×1

qmake ×1

qt5 ×1