微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – Swift 2.0:使用Set时,无法将值MyApp.MyCustomClass转换为MyAppTests.MyCustomClass

这是一个错误

Could not cast value of type MyApp.Member (0x1674daf8) to MyAppTests.Member (0x4c07248).

您可以轻松地重现错误

>设置两个NSManagedobject

@objc(Member)
class Member: NSManagedobject {
    @NSManaged var family: Family
}

@objc(Family)
class Family: NSManagedobject {
    @NSManaged var members: Set<Member>
}

>也可以在.xcdatamodel中设置它:
>然后在你的TestFile中:

func testA() {

    let family = Family.MR_createEntityInContext(context)
    let father = Member.MR_createEntityInContext(context)

    father.family = family

    let firstMember = family.members.first

    XCTAssertEqual(firstMember!,father)
}

解决方法

我找到了一个解决方案:

我认为那些有这个问题的人把他们的文件导入到这个测试对象:

enter image description here

因为他们应该这样做:

enter image description here

所以,只需从测试目标中删除文件。然后,如果您需要在测试目标中的文件,只需在每个测试类中使用@testable关键字。

enter image description here

这样就不用再在目标之间投射值了。它为我工作:-)享受:-)

阅读更多从Swift 2 + Xcode 7: Unit Testing Access Made Easy!!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐