我尝试Swift
在我的app中集成代码.我的应用程序是写入的Objective-C
,我添加了一个Swift
类.我做了这里描述的所有事情.但我的问题是Xcode
没有创建-Swift.h
文件,只有桥接头.所以我创造了它,但它实际上是空的.我可以在Swift中使用我所有的ObjC类,但我不能这样做.我标记了我的快速课程,@objc
但没有帮助.我现在能做什么?
编辑:Apple说:"当您将Swift代码导入Objective-C时,您依靠Xcode-generated
头文件将这些文件暴露给Objective-C.[...]此标题的名称是您的产品模块名称,然后添加" -Swift.h"."
现在,当我想导入该文件时,它会出错:
//MainMenu.m
#import "myProjectModule-Swift.h" //Error: 'myProjectModule-Swift.h' file not found
@implementation MainMenu
Run Code Online (Sandbox Code Playgroud)
这是我的FBManager.swift文件:
@objc class FBManager: NSObject {
var descr = "FBManager class"
init() {
super.init()
}
func desc(){
println(descr)
}
func getSharedGameState() -> GameState{
return GameState.sharedGameState() //OK! GameState is written in Objective-C and no error here
}
}
Run Code Online (Sandbox Code Playgroud) 我最近更新到Xcode 7 beta 5.我尝试在早期项目中添加单元测试,但是我收到错误消息"没有这样的模块[myModuleName]"就@testable import myModuleName
行了.
我试过了
这项工作都没有用(但我已经在另一个项目中进行了测试).还有其他人有这个问题并解决了吗?
我正在尝试为我的项目设置单元测试.它是一个现有的Objective-C应用程序,我最近添加了一个Swift类.我已经设置了'MyProject-Swift.h'和Swift Bridging文件('MyProject'和'MyProjectTest'),我能够使用Objective-C和Swift代码构建和运行应用程序.
但是,现在我想在新的Swift类上运行一些单元测试.我设置了我的测试文件,它看起来如下:
MySwiftClassTests.swift:
import UIKit
import XCTest
import MyProject
class MySwiftClassTests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// This is an example of a functional test case.
XCTAssert(true, "Pass")
} …
Run Code Online (Sandbox Code Playgroud) 我有一个Swift项目,我正在尝试导入基于ObjC的框架.该框架位于项目路径下的目录中,并由Xcode中的项目引用.它还在项目的"构建阶段"页面中添加到"Link Binary with Libraries"中.
但是,出于某种原因,我似乎无法在Bridging-Header文件中包含该框架.我收到以下错误:
BridgingHeader.h:5:9: error: 'Parse/Parse.h' file not found
#import <Parse/Parse.h>
^
<unknown>:0: error: failed to import bridging header 'BridgingHeader.h'
Run Code Online (Sandbox Code Playgroud)
我检查过的事情:
我确定我错过了一些东西,所以如果有人有任何线索,那就太棒了.
我发现很难找到如何在Xcode 6b4中配置测试目标.鉴于这种情况,有人能指出我正确的方向.
我有一个主要是Swift项目.但是,有一些第三方Objective-C依赖项,它们被放入应用程序的桥接头中.我想为我的Swift代码编写测试.理想情况下,在斯威夫特.我遇到的问题是......
如果我创建一个Swift测试用例,那么编译器会抱怨它无法在应用程序的桥接头中找到Objective-C头.
如果我创建一个Objective-C测试用例,那么我就无法导入我想要测试的Swift类.
我唯一能做的就是编写Objective-C测试用例,它不会碰到任何Swift.由于Objective-C依赖性,我无法编写"纯粹的Swift代码/测试".
有没有人对此有任何建议或成功.或者这是Beta 4中的当前状态?
我查看了很多博客,并尝试了很多东西让我的Swift单元测试在Xcode 6.0.1(或者6.1)中工作.我正在尝试访问应用程序目标中的类,所以我写了这一行:
var vc: LoginViewController!
Run Code Online (Sandbox Code Playgroud)
当然,我得到"使用未声明的类型'LoginViewController'"错误.
然后我尝试添加LoginViewController
到我的测试目标,但随后我在项目中的其他类上"使用了未解析的标识符"错误.所以我尝试将这些类添加到我的测试目标中,但我最终得到了一个看似无穷无尽的错误来源,如下面的截图:
将我的所有课程声明为公开课程会导致其他错误,这似乎是不好的做法.无论如何,在依赖于许多框架和类的Swift项目中包含单元测试?我只想从与本文中的代码完全相同的内容开始.