gpt4 book ai didi

ios - 为什么我们在 fetchRequest() 声明之前放置 @nonobjc 属性?

转载 作者:行者123 更新时间:2023-11-28 15:12:51 25 4
gpt4 key购买 nike

我像这样声明通常的托管对象类

 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 的信息,请参阅Apple 文档:https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html

关于ios - 为什么我们在 fetchRequest() 声明之前放置 @nonobjc 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47352379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com