我正在将Swift代码集成到一个大型的Objective-C项目中,但是当我的Swift代码引用Objective-C类时,我遇到了问题.例如,假设我有:
MyTableViewControllerDeletionWorkflow我声明了一个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类时不会发生这些错误?
我遇到了一个问题,我的Swift代码编译得很好但是生成的-Swift.h文件中有错误...
这是我正在做的一个例子:
class MyScene : CCLayer {
var ctrl : CCControlSlider?
}
Run Code Online (Sandbox Code Playgroud)
这在swift代码中编译得很好,我可以看到ctrl对象上的方法也很好.我的网桥标题中有以下内容:
#import "cocos2d.h"
#import "CCControlSlider.h"
Run Code Online (Sandbox Code Playgroud)
这在使用其他正常工作的库的其他类中完全正常.另请注意,我可以在Objective-c类中使用此CCControlSlider类,也没有任何问题.
以下是生成的-Swift.h文件中发生的情况:
SWIFT_CLASS("_TtC15MyProject10MyScene")
@interface MyScene : CCLayer
@property (nonatomic) CCControlSlider * ctrl;
@end
Run Code Online (Sandbox Code Playgroud)
该属性具有错误"未知类型名称"CCControlSlider",如果它在方法中使用,则它会给出错误"预期类型".
这可以很好地使用其他类,但由于某种原因,这一个类只在生成的头文件中提供此编译器错误,并且仅在从Swift使用时.
我想我想知道的是,我做错了什么或者这只是一个错误?
我试图在我的Swift项目中导入这个库.我正在从这个文件和这个答案一步一步地做,但没有任何作用.
这是我的截图:

这是我的Bridging-Header.h:
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import <UIKit/UIKit.h>
#import "VKUser.h"
#import "VKAccessToken.h"
#import "VKCache.h"
#import "VKStorage.h"
#import "VKStorageItem.h"
#import "VKRequestManager.h"
#import "VKRequest.h"
#import "VKConnector.h"
#import "VKMethods.h"
#import "NSData+toBase64.h"
#import "NSString+Utilities.h"
Run Code Online (Sandbox Code Playgroud)
重要的是我在一个文件中有VKConnector类和VKConnectorDelegate协议.也许这就是问题所在?
//
// Copyright (c) 2013 Andrew Shmig
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of …Run Code Online (Sandbox Code Playgroud)