我最近更新了Xcode (6.3)的最新版本,现在无法运行我们以前的功能测试。
它抛出一个包含以下信息的SIGABRT:
无法将“MyApplication.MyPSClass”(0x109d7f410)类型的值转换为“MyApplicationTests.MyPSClass”(0x1197ddec0)。
MyApplicationTests是测试目标,MyApplication是正常的应用目标。
MyApplication使用Parse作为后端。这个错误有可能是子类功能的结果吗?
MyClass子类PFObject和PFSubclassing是在解析的子类文档中指定的:
class MyPSClass : PFObject, PFSubclassing { ... }显示"Thread 1: SIGABRT“的行是:
let myPSInstance = MyPSClass.query().getObjectWithId("ParseObjectIDString") as! MyPSClass包含此行的Test文件如下所示:
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()
}
}为什么会发生这种事,我该怎么解决呢?提前感谢!
发布于 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
https://stackoverflow.com/questions/29585710
复制相似问题