Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Ios Swift&;Objective-C项目-已生成-Swift.h错误-找不到UIViewController的接口声明_Ios_Objective C_Xcode_Swift_Language Interoperability - Fatal编程技术网

Ios Swift&;Objective-C项目-已生成-Swift.h错误-找不到UIViewController的接口声明

Ios Swift&;Objective-C项目-已生成-Swift.h错误-找不到UIViewController的接口声明,ios,objective-c,xcode,swift,language-interoperability,Ios,Objective C,Xcode,Swift,Language Interoperability,我有一个使用Swift生成的桥接头的项目,并正确设置了该项目(名称中没有空格,使用模块,在.mm文件中预先声明Swift类,删除派生数据,进行干净的重建等等)。桥接标头生成得很好,但是自动生成的-Swift.h有错误。更糟糕的是,这些错误发生在AppDelegate和ViewController的生成(在项目创建-Swift中)版本上,这些版本通常可以正常编译。-Swift.h中的错误为: @接口AppDelegate:UIResponder >找不到“UIResponder”超类的接口声明

我有一个使用Swift生成的桥接头的项目,并正确设置了该项目(名称中没有空格,使用模块,在.mm文件中预先声明Swift类,删除派生数据,进行干净的重建等等)。桥接标头生成得很好,但是自动生成的-Swift.h有错误。更糟糕的是,这些错误发生在AppDelegate和ViewController的生成(在项目创建-Swift中)版本上,这些版本通常可以正常编译。-Swift.h中的错误为:

  • @接口AppDelegate:UIResponder

    >找不到“UIResponder”超类的接口声明 “AppDelegate”的名称
    >>找不到“UIApplicationLegate”的协议声明。
  • @interface ViewController:UIViewController

    >找不到超类“UIViewController”的接口声明 “ViewController”的名称

我搜索了Stack Overflow和net,找不到任何解决此特定问题的答案。还有其他人有这个吗?或者,有没有一种方法可以标记我的AppDelegate和ViewController类,这样Xcode就不会尝试为那些Swift类创建Objective-C存根,因为我实际上并不需要它们?

我也遇到了同样的问题,并发现

-Swift.h只能与Objective-C一起工作,而不能与Objective-C++(.mm)一起工作


所以我使用Objective-C类来连接Swift类。此外,您还可以始终在Objective-C类中加载Objective-C++类。

尝试将UIKit/UIKit.h导入桥接头文件。

只需添加

#import <UIKit/UIKit.h>
#导入
以前

#import <YourProject-Swift.h>
#导入

在.mm文件中。对我来说,这很有帮助。

我在CoreData方面遇到了以下问题:(对于CoreData,我使用Objective C来处理CoreData模型类。请随意查看我在github上的示例数据库应用程序。在
Project Swift.h
中导入
UIKit/UIKit.h
没有帮助,但在我实际的Objective C头文件中这样做就成功了。如果不起作用,请尝试将UIKit/UIKit.h导入Bridgeting heade。)r文件。您不应该更改
-Swift.h
文件,因为这是自动生成的,一旦Xcode重新创建此文件,此问题将对您产生影响。非常感谢!这是唯一对我有效的解决方案。您挽救了我的一天。+=1