我一直在实现可解码的CoreData堆栈。总体结构就像一本书,例如,有一个Book类,可以有许多章,每章都指向书,而书则指向所有章。
作为此过程的一部分,我注意到了很多样板代码,并且我正在尝试合并一些代码。我要尝试做的一件事涉及建立这些NSManagedObjects之间的关系。为此,我创建了以下协议(请命名,仍然对细节进行哈希处理):
protocol RelatedManagedObject {
func setRelation<T:NSManagedObject>(to object:T)
}
因此,在我的本章课中,我会写:
func setRelation<Book>(to object:Book){
self.book = object
}
但是,这时我遇到了编译器错误:
无法将“ Book”类型的值分配为“ Book”类型
这建议强制强制转换为“书本”(例如object as! Book
),但随后对我大吼大叫以删除强制转换或添加另一个(object as! Book as! Book
)大声笑。