首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift Xcode 6在测试时给出SIGABRT

Swift Xcode 6在测试时给出SIGABRT
EN

Stack Overflow用户
提问于 2015-04-12 03:41:46
回答 1查看 1K关注 0票数 4

我最近更新了Xcode (6.3)的最新版本,现在无法运行我们以前的功能测试。

它抛出一个包含以下信息的SIGABRT:

无法将“MyApplication.MyPSClass”(0x109d7f410)类型的值转换为“MyApplicationTests.MyPSClass”(0x1197ddec0)。

MyApplicationTests是测试目标,MyApplication是正常的应用目标。

MyApplication使用Parse作为后端。这个错误有可能是子类功能的结果吗?

MyClass子类PFObject和PFSubclassing是在解析的子类文档中指定的:

代码语言:javascript
复制
class MyPSClass : PFObject, PFSubclassing { ... }

显示"Thread 1: SIGABRT“的行是:

代码语言:javascript
复制
let myPSInstance = MyPSClass.query().getObjectWithId("ParseObjectIDString") as! MyPSClass

包含此行的Test文件如下所示:

代码语言:javascript
复制
import UIKit
import XCTest

class MyClassTests: XCTestCase {

    override func setUp() {
        super.setUp()
        //...
    }

    func testInit() {
        let myPSInstance = MyPSClass.query().getObjectWithId("ParseObjectIDString") as! MyPSClass
        //...    
    }

    override func tearDown() {
        super.tearDown()
    }

}

为什么会发生这种事,我该怎么解决呢?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-12 04:41:18

正在发生的是,在这一行中:

let myPSInstance = MyPSClass.query().getObjectWithId("ParseObjectIDString") as! MyPSClass

你把MyPSClass投给了MyApplicationTests.MyPSClass。您无法判断,因为swift使用隐式命名空间(它隐藏了MyApplicationTests名称空间)。你可以使用:

let myPSInstance = MyPSClass.query().getObjectWithId("ParseObjectIDString") as! MyApplication.MyPSClass

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29585710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档