gpt4 book ai didi

ios - 将 Swift 导入 Objective-c 后出错

转载 作者:行者123 更新时间:2023-11-28 05:34:47 25 4
gpt4 key购买 nike

我尝试在 OC 中使用 swift,所以我设置 Defines Module YES set Product Module Name with Product Name and "import ProductName- Swift.h"在我想使用 swift 的 .m 文件中

但项目无法运行,导致“ProductName-Swift.h”出现大量错误 enter image description here

AppDelegate.swift好像有问题,怎么解决

最佳答案

以下是我如何将问题解决到 ProductName-Swift.h 中:在这个文件中,我可以看到这样的导入:

#if defined(__has_feature) && __has_feature(modules)
@import UIKit;
@import CoreGraphics;
@import MessageUI;
@import AddressBookUI;
@import AddressBook;
@import Foundation;
@import ObjectiveC;
@import MapKit;
@import CoreLocation;
#endif

因此,关于错误,我认为导入效果不佳。首先,编译器不会出现在 if 中。看来

__has_feature(modules)

返回 false(而我在build设置中设置了它)。

好吧,放手没有...再次出错。看来 @import 只能在模块被激活时使用,他发现没有....所以我用 #import 替换了所有 @import 并且它有效!但最后一个问题是每次我在 swift 文件中写入时都会生成文件。我必须每次都更改这些导入...所以我创建了这个片段代码:

#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
#import <AddressBookUI/AddressBookUI.h>
typedef ABRecordRef ABRecord;

(最后一行是将 swift 方法中的 ABRecord 替换为 Objective-C 中使用的 ABRecordRef)

注意:我没有任何用于@import ObjectiveC 的#import,但似乎不需要它。

PS:如果您认为自己有答案,我将创建一个帖子来寻求有关模块 set-but-not-for-compiler 的帮助..;-)

关于ios - 将 Swift 导入 Objective-c 后出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com