Swift 2.0:使用 Set 时无法将值 MyApp.MyCustomClass 转换为 MyAppTests.MyCustomClass
Swift 2.0: Could not cast value MyApp.MyCustomClass to MyAppTests.MyCustomClass when using Set
这是一个错误:
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)
}
我找到了解决办法:
我想那些有这样问题的人,是这样将他们的文件导入测试目标的:
因为他们应该这样做:
因此,只需从测试目标中删除文件即可。然后,如果您需要测试目标中的文件,只需在 every 测试 class.
中使用 @testable
关键字
这样在目标之间转换值就没有问题了。它对我有用:-) 享受:-)
的更多内容
这是一个错误:
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
中进行设置:然后在你的 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) }
我找到了解决办法:
我想那些有这样问题的人,是这样将他们的文件导入测试目标的:
因为他们应该这样做:
因此,只需从测试目标中删除文件即可。然后,如果您需要测试目标中的文件,只需在 every 测试 class.
中使用@testable
关键字
这样在目标之间转换值就没有问题了。它对我有用:-) 享受:-)
的更多内容