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的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 - MagicalRecord:如何在空实体上使用 findFirst
如何确保在使用 MagicalRecord 3.0 保存后台线程后通知 NSFetchedResultsController