相关疑难解决方法(0)

不能在Objective-C中使用Swift类

我尝试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)

objective-c ios swift

251
推荐指数
12
解决办法
15万
查看次数

在Xcode Unit测试中使用@testable时"没有这样的模块"

我最近更新到Xcode 7 beta 5.我尝试在早期项目中添加单元测试,但是我收到错误消息"没有这样的模块[myModuleName]"就@testable import myModuleName行了.

在此输入图像描述

我试过了

  • 使用OptionClean Build Folder 清理项目
  • 检查"构建选项"中的"启用可测试性"(调试)是否设置为"是"
  • 删除测试目标,然后重新添加iOS单元测试包

这项工作都没有用(但我已经在另一个项目中进行了测试).还有其他人有这个问题并解决了吗?

xcode unit-testing ios xctest

141
推荐指数
13
解决办法
7万
查看次数

iOS - 运行Swift的单元测试时找不到'MyProject-Swift.h'文件

我正在尝试为我的项目设置单元测试.它是一个现有的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)

unit-testing header ios swift

91
推荐指数
4
解决办法
2万
查看次数

在将Objective-C框架导入Swift项目时,在Bridging Header中获取"找不到文件"

我有一个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)

我检查过的事情:

  1. "安装Objective-C Compatibility Header"设置为"YES".
  2. 标题搜索路径包括框架的路径.

我确定我错过了一些东西,所以如果有人有任何线索,那就太棒了.

xcode swift

90
推荐指数
8
解决办法
9万
查看次数

如何为单元测试设置Swift + Objective-C项目

我发现很难找到如何在Xcode 6b4中配置测试目标.鉴于这种情况,有人能指出我正确的方向.

我有一个主要是Swift项目.但是,有一些第三方Objective-C依赖项,它们被放入应用程序的桥接头中.我想为我的Swift代码编写测试.理想情况下,在斯威夫特.我遇到的问题是......

  1. 如果我创建一个Swift测试用例,那么编译器会抱怨它无法在应用程序的桥接头中找到Objective-C头.

  2. 如果我创建一个Objective-C测试用例,那么我就无法导入我想要测试的Swift类.

我唯一能做的就是编写Objective-C测试用例,它不会碰到任何Swift.由于Objective-C依赖性,我无法编写"纯粹的Swift代码/测试".

有没有人对此有任何建议或成功.或者这是Beta 4中的当前状态?

objective-c ios swift xcode6

34
推荐指数
6
解决办法
2万
查看次数

添加Swift文件以测试目标而不是修复单元测试

我查看了很多博客,并尝试了很多东西让我的Swift单元测试在Xcode 6.0.1(或者6.1)中工作.我正在尝试访问应用程序目标中的类,所以我写了这一行:

var vc: LoginViewController!
Run Code Online (Sandbox Code Playgroud)

当然,我得到"使用未声明的类型'LoginViewController'"错误.

然后我尝试添加LoginViewController到我的测试目标,但随后我在项目中的其他类上"使用了未解析的标识符"错误.所以我尝试将这些类添加到我的测试目标中,但我最终得到了一个看似无穷无尽的错误来源,如下面的截图:

xcode迅速错误

将我的所有课程声明为公开课程会导致其他错误,这似乎是不好的做法.无论如何,在依赖于许多框架和类的Swift项目中包含单元测试?我只想从与本文中的代码完全相同的内容开始.

unit-testing access-control ios xctest swift

22
推荐指数
3
解决办法
9626
查看次数