我宣布像这样的常规managedobject类
public extension Camper {
@nonobjc class func fetchRequest() -> NSFetchRequest<Camper> {
return NSFetchRequest<Camper>(entityName: "Camper")
}
@NSManaged var fullName: String?
@NSManaged var phoneNumber: String?
@NSManaged var reservations: Reservation?
}
我真的很困惑在那种具体情况下
@nonobjc
属性的意图。 最佳答案
通常,您会使用@nonobjc注释来解决由此产生的循环依赖性问题。
例如,您在swift中定义了一些东西,它使用了objc中定义的东西,它再次使用了swift中的“某物”。
这不起作用,因为您需要将桥接头从objc导入swift,反之亦然。如果您不提供@nonobjc注释,编译器将无法解决此问题。
关于如何使用@objc和@nonobjc,请参阅苹果的文档:https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html
关于ios - 为什么我们将@nonobjc属性放在fetchRequest()声明之前?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47352379/