MagicalRecord 如何使用 CocoaPods 设置新的 Swift 项目使用:branch => 'develop' 即 2.3.0-beta.5

Posted

技术标签:

【中文标题】MagicalRecord 如何使用 CocoaPods 设置新的 Swift 项目使用:branch => \'develop\' 即 2.3.0-beta.5【英文标题】:MagicalRecord how to setup for new Swift Project using CocoaPods Use :branch => 'develop' i.e. 2.3.0-beta.5MagicalRecord 如何使用 CocoaPods 设置新的 Swift 项目使用:branch => 'develop' 即 2.3.0-beta.5 【发布时间】:2015-01-20 13:27:36 【问题描述】:

我已经建立了一个新项目来研究具有 MagicalRecord 兼容性的 Core Data。我在 CocoaPod 中指定了“开发”分支,但我在使用 MyProjectName.MyManagedObject.MR_fetchAllSortedBy 和 MyManagedObject.MR_fetchAllSortedBy 时都遇到了 fetchRequests 问题。我已将 MyManagedObject 创建为 Swift 文件,并且在其他链接器标志中设置了 -ObjC 标志。看到的错误是:“NSInvalidArgumentException”,原因:“获取请求必须有一个实体。” CoreData 堆栈设置成功。在获取请求时发生在 MagicalRecord 中的失败。

【问题讨论】:

【参考方案1】:

为您的 NSManagedObject 类指定 @objc(<class name>) 前缀将在获取实体时修复 executeFetchRequest:error: A fetch request must have an entity. 错误。

import Foundation
import CoreData

@objc(AccountEntity) class AccountEntity: NSManagedObject 

    @NSManaged var createdAt: NSDate
    @NSManaged var name: String


【讨论】:

这绝对应该是一个公认的答案。我仍然不清楚为什么我们需要在 "@objc"、"@objc(AccountEntity)" 之后添加类名而不是 "@objc" 但它有效!

以上是关于MagicalRecord 如何使用 CocoaPods 设置新的 Swift 项目使用:branch => 'develop' 即 2.3.0-beta.5的主要内容,如果未能解决你的问题,请参考以下文章

MagicalRecord 如何在关系中添加对象

如何使用 MagicalRecord 过滤和获取记录?

Swift 3 - MagicalRecord:如何在空实体上使用 findFirst

如何确保在使用 MagicalRecord 3.0 保存后台线程后通知 NSFetchedResultsController

静态库中的 MagicalRecord:如何加载数据模型?

如何在 Swift 中使用 MagicalRecord CoreData 删除 tableview 中的记录