【问题标题】:Type 'AnyObject' does not conform to protocol 'NSFetchRequestResult'类型“AnyObject”不符合协议“NSFetchRequestResult”
【发布时间】:2016-07-11 15:55:29
【问题描述】:

我刚刚安装了Xcode 8 beta 2iOS 10 beta。我有一个现有项目,我根据 Xcode 的提示从 swift 2.3 更新到 swift 3。我的代码数据代码出现错误。

这是在 xcode 从 swift 2.3 到 swift 3 的转换中自动生成的

var fetchedResultsController: NSFetchedResultsController<AnyObject>!

我收到的错误是

 Type 'AnyObject' does not conform to protocol 'NSFetchRequestResult'

我试图符合 AnyObject

extension AnyObject: NSFetchRequestResult {}

但我收到另一个错误

我不确定我需要做什么,或者我的 fetchedResultsController 是否需要首先更改。

回答:var fetchedResultsController: NSFetchedResultsController&lt;Content&gt;!

【问题讨论】:

  • 您还想在NSFetchedResultsController 中使用什么作为NSManagedObject(或子类)?
  • @vadian 类内容:NSManagedObject。这是你要求的吗?
  • 实际上这是一个反问:NSFetchedResultsController 仅适用于符合NSFetchRequestResultNSManagedObject。将NSFetchRequestResult 扩展为AnyObject 是没用的。

标签: ios swift xcode core-data swift3


【解决方案1】:

Xcode 转换器可能对您想要在此获取的结果控制器中返回的 Entity 感到困惑。将 AnyObject 替换为您正在获取的实体类型。

您应该在此打开一个雷达 (bugreporter.apple.com),因为它不应该在这里建议 AnyObject。在最坏的情况下,它应该建议NSManagedObject

【讨论】:

  • 我能够使用代码删除错误:var fetchedResultsController: NSFetchedResultsController!
猜你喜欢
  • 2014-10-23
  • 2015-01-02
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多