将 NSPersistentStoreResult 强制转换为数组

Posted

技术标签:

【中文标题】将 NSPersistentStoreResult 强制转换为数组【英文标题】:Cast a NSPersistentStoreResult to array 【发布时间】:2016-12-01 12:31:48 【问题描述】:

您好,下面的代码有问题。具体来说, if let 语句将来自 NSPeristentStoreResult 的 Cast 提供给无关类型 [Item] 总是失败警告。我正在使用 Swift 3.01。

看起来这应该很简单。我正在关注的这本书是使用早期版本的 Swift 编写的。谢谢你的宽容。

func demo()

let request = NSFetchRequest<Item>(entityName: "Item")

  do 
     if let items = try CDHelper.shared.context.execute(request) as? [Item] 
        for item in items 
           if let name = item.name 
              print("Fetched Managed Object = '\(name)'")
           
        
     
   catch 
     print("Error executing a fetch request: \(error)")
  
 

【问题讨论】:

***.com/a/52830702/1673192 【参考方案1】:

使用fetch() 代替execute()

if let items = try CDHelper.shared.context.fetch(request)
...

或者在你的上下文中使用perform

 CDHelper.shared.context.perform 
      let fetchRequest: NSFetchRequest<Item> = Item.fetchRequest()            
      let items = try! fetchRequest.execute() 
      for item in items 
           if let name = item.name 
                print("Fetched Managed Object = '\(name)'")
           
      

【讨论】:

以上是关于将 NSPersistentStoreResult 强制转换为数组的主要内容,如果未能解决你的问题,请参考以下文章

将自己的博客园,打造成个人知乎

如何将thinkcmf导入eclipse

如何将Ios文件上传到

Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等

如何将视频文件转换格式

sh 一个将生成CA的脚本,将CA导入到钥匙串中,然后它将创建一个证书并与CA签名,然后将其导入到