这是一个错误:
Could not cast value of type
MyApp.Member
(0x1674daf8) toMyAppTests.Member
(0x4c07248).
您可以通过简单的方式重现错误:
设置两个
NSManagedObject
@objc(Member) class Member: NSManagedObject { @NSManaged var family: Family } @objc(Family) class Family: NSManagedObject { @NSManaged var members: Set<Member> }
也在您的
.xcdatamodel
中进行设置:然后在您的测试文件中:
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) }
最佳答案
我找到了一个解决方案:
我想那些有这样问题的人,是这样将他们的文件导入测试目标的:
因为他们应该这样做:
因此,只需从测试目标中删除文件即可。然后,如果您需要测试目标中的文件,只需在您的每个测试类中使用@testable
关键字即可。
这样在目标之间转换值就没有问题了。它对我有用:-) 享受:-)
关于ios - 使用 Set 时,Swift 2.0 : Could not cast value MyApp. MyCustomClass 到 MyAppTests.MyCustomClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31089389/