当使用带有Swift和Xcode8的Core Data时,我会在下面生成一个模型,但我觉得它很难使用:
chapter
与另一个模型的关系,并且其类型已生成为NSOrderedSet
NSOrderedSet
与NSOrderedSet<Chapter>?
我怀疑你们如何与Swift一起玩Core Data ......
我应该尝试使用Realm吗?
CourseDetail.swift
:
extension CourseDetail {
@NSManaged public var title: String?
@NSManaged public var chapter: NSOrderedSet?
@NSManaged public var author: NSOrderedSet?
}
// MARK: Generated accessors for chapter
extension CourseDetail {
@objc(addChapterObject:)
@NSManaged public func addToChapter(_ value: Chapter)
@objc(removeChapterObject:)
@NSManaged public func removeFromChapter(_ value: Chapter)
@objc(addChapter:)
@NSManaged public func addToChapter(_ values: NSSet)
@objc(removeChapter:)
@NSManaged public func removeFromChapter(_ values: NSSet)
}
答案 0 :(得分:1)
在我的情况下,我不使用生成的类,我自己编写它们而不使用选项,除非需要。您不必使用生成的类。
即使生成的访问器也可以手写,它们遵循简单的键值编码命名约定。
如果我正在编写课程,它看起来像是:
@objc(CourseDetail)
public final class CourseDetail: NSManagedObject { // The actual class, no longer an extension.
@NSManaged public var title: String
@NSManaged public var chapter: NSSet
@NSManaged public var author: NSSet
// A convenience for fetch requests
@nonobjc public class func fetchRequest() -> NSFetchRequest<CourseDetail> {
return NSFetchRequest<CourseDetail>(entityName: "CourseDetail");
}
@objc(addChapterObject:)
@NSManaged public func addToChapter(_ value: Chapter)
@objc(removeChapterObject:)
@NSManaged public func removeFromChapter(_ value: Chapter)
@objc(addChapter:)
@NSManaged public func addToChapter(_ values: NSSet)
@objc(removeChapter:)
@NSManaged public func removeFromChapter(_ values: NSSet)
}