相关疑难解决方法(0)

如何添加-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编译bug"Unknown type name"和"Expected a type"

我遇到了一个问题,我的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使用时.

我想我想知道的是,我做错了什么或者这只是一个错误?

ios swift

12
推荐指数
3
解决办法
1万
查看次数

在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)

objective-c swift

7
推荐指数
2
解决办法
3万
查看次数

标签 统计

swift ×3

objective-c ×2

ios ×1