相关疑难解决方法(0)

当Swift桥接头导入导入Hopscotch-Swift.h本身的文件时,如何防止循环引用

我正在将Swift集成到一个大型的现有Objective C项目中,并且遇到了我认为是循环引用的问题.

有问题的课程如下:

Objective C控制器

#import "Hopscotch-Swift.h"

@interface MyController : UIViewController<MyProtocol>
   ...
@end
Run Code Online (Sandbox Code Playgroud)

Swift协议

@objc protocol MyProtocol: NSObjectProtocol {
   ...
}
Run Code Online (Sandbox Code Playgroud)

桥接标题

#import "MyController.h"
Run Code Online (Sandbox Code Playgroud)

此代码无法编译,因为该Hopscotch-Swift.h文件不会生成.

我认为这是由于循环引用错误,因为我可以导入Hopscotch-Swift.h到未包含的目标c标头中,Hopscotch-Bridging-Header.h并且它可以正常工作.

是否有针对此问题的解决方法,还是应该向Apple提交雷达?

cocoa objective-c swift

43
推荐指数
3
解决办法
5697
查看次数

如何添加-Swift.h头中使用的前向类引用?

我正在将Swift代码集成到一个大型的Objective-C项目中,但是当我的Swift代码引用Objective-C类时,我遇到了问题.例如,假设我有:

  1. 一个叫做Objective-C的类 MyTableViewController
  2. 一个叫做Objective-C的类 DeletionWorkflow

我声明了一个Swift类如下:

class DeletionVC: MyTableViewController {
  let deleteWorkflow: DeletionWorkflow

  ...
}
Run Code Online (Sandbox Code Playgroud)

如果我现在尝试通过导入ProjectName-Swift.hObjective-C代码来使用这个类,我会得到两个MyTableViewController和未定义的符号错误DeletionWorkflow.

我可以通过导入DeletionWorkflow.h和导入MyTableViewController.h之前修复单个源文件中的问题,ProjectName-Swift.h但这不能扩展到我希望我的Swift和Objective-C经常进行交互的大型项目.

有没有办法添加前向类引用,ProjectName-Swift.h以便当我尝试在我的应用程序中使用Objective-C代码中的Swift类时不会发生这些错误?

objective-c swift

18
推荐指数
2
解决办法
8463
查看次数

Swift&Objective-C项目 - 生成-Swift.h错误 - 无法找到UIViewController的接口声明

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

  • @interface AppDelegate : UIResponder <UIApplicationDelegate>
    >>无法找到'UIResponder'的接口声明,'AppDelegate'的超类
    >>找不到'UIApplicationDelegate'的协议声明
  • @interface ViewController : UIViewController
    >>无法找到'UIViewController'的接口声明,'ViewController'的超类

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

xcode objective-c language-interoperability ios swift

11
推荐指数
2
解决办法
2564
查看次数

在myproject-swift.h中找不到接口声明

XLPagerTabStrip在项目中使用pod

我有一个桥接头用于其他目的,以从快速集成到目标c myproject-swift.h

我无法构建项目,并且此错误总是弹出:

找不到'ParentViewController'的超类'ButtonBarPagerTabStripViewController'的接口声明

在此处输入图片说明

这是我的控制器

import Foundation
import UIKit
import XLPagerTabStrip

class ParentViewController: ButtonBarPagerTabStripViewController {

    override func viewDidLoad() {
        tabStripStyle()
        super.viewDidLoad()
        containerView.isScrollEnabled = false
    }
   } 
Run Code Online (Sandbox Code Playgroud)

我到处都看到过这个问题,但是这里还没有回答: 自动生成的Swift桥接头中的“找不到接口声明”

迅速 SR-805 SR-5398中的错误

xcode header objective-c swift xlpagertabstrip

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