我曾尝试将swift ViewController文件包含在Objective-C项目中 但我无法做到,它显示错误,如未知类型名称导入如何解决此问题,请为此问题提供任何帮助。
这里我发送我的代码和ScreenShot。
import UIKit
@objc class SigViewController2: UIViewController {
@IBOutlet weak var cameraBtn: UIButton!
@IBOutlet weak var imageBtn: UIButton!
@IBOutlet weak var settingsBtn: UIButton!
@IBOutlet weak var mediaBtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true)
navigationController?.navigationBarHidden = false
self.navigationItem.title = "Main";
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
// Only allow Portrait
return UIInterfaceOrientationMask.Portrait
}
override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
// Only allow Portrait
return UIInterfaceOrientation.Portrait
}
答案 0 :(得分:6)
对于仍在寻找答案的开发人员。
在Swift
内导入Objective-c
文件可能会导致此错误,如果它没有正确导入。
让我们先看一下错误。
让我们在 KJTreeObjC.Swift
下面的 Objective-C ViewController
文件上面试试。
解决方案:
您可以在桥接标题的帮助下导入它 在 Objective-C项目中创建/复制Swift文件时。它会自动创建一个桥接头。
在Objective-C Generated Interface Header Name
处查看Targets -> Build Settings
我们现在Import
的标题名称
你可以事后检查,错误会立即消失。
答案 1 :(得分:3)
由于您在.swift
中导入了Objective-C ViewController
类,因此显示此错误。这是错误的,您应该导入Swift标头,而不是:
#import "ProductModuleName-Swift.h"
答案 2 :(得分:0)
我的项目中遇到了同样的问题。我在Objective-c代码中使用了swift代码。在项目的任何类中,您必须以objective-c样式导入swift文件,如下所示:
#import "MyClass.swift"
请删除它并在.h文件中使用转发声明,如下所示:
@class MyClass.swift;
它将删除所有错误并完美运行。
答案 3 :(得分:0)
在我的情况下,这是因为即使我使用的是
将其更改为默认-Swift Source 为我解决了该问题。
答案 4 :(得分:0)
我做了什么:选择文件并检查您的“目标成员身份”