我在使用Core Data中的關係時遇到問題。我創建了我的數據模型,其中包括以下實體:用戶,對話,消息,參與者 - 每個實體都包含與其後的實體的一對多關係。我使用Editor - > Create NSManagedObject Subclass爲每個實體生成類,併爲每個類正確創建.Swift文件。該項目建立,但在嘗試創建並保存新的用戶我收到以下錯誤時:CoreData:無法爲實體加載類
2014-12-01 12:31:28.450 Messenger[2627:151403] CoreData: warning: Unable to load class named 'Messenger.User' for entity 'User'. Class not found, using default NSManagedObject instead.
我確信,我的實體類是與項目/模塊名稱(Messenger.User)前綴。
我還在用戶類正上方添加了「@ObjC(用戶)」,併爲該項目添加了「-ObjC」到「其他鏈接器標誌」,正如各種其他帖子中的人員所建議的。這些都是我可以找到的所有修復,但我仍然得到相同的錯誤。下面是我的User類的樣子,以供參考:
import Foundation
import CoreData
@objc(User)
class User: NSManagedObject {
@NSManaged var api : API
@NSManaged var username: String
@NSManaged var userID: String
@NSManaged var passcode: String
@NSManaged var conversations: NSSet
func findConversations(sourceView: MessengerViewController) {
api.findConversations(sourceView)
}
func addConversation(newConversation: Conversation) {
self.addConversationObject(newConversation)
}
}
extension User {
func addConversationObject(value: Conversation) {
var items = self.mutableSetValueForKey("conversations");
items.addObject(value)
}
func removeConversationObject(value: Conversation) {
var items = self.mutableSetValueForKey("conversations");
items.removeObject(value)
}
}
沒有任何人有一個想法,否則我做錯了什麼?我已經嘗試過所有可能會遇到的問題,但目前爲止似乎沒有任何工作能夠實現。
編輯:試圖創建一個新的用戶對象時,在下面的第三行中出現的警告:
let userContext : NSManagedObjectContext = self.appDel.managedObjectContext!
let userEntity : NSEntityDescription = NSEntityDescription.entityForName("User", inManagedObjectContext: userContext)!
var newUser = User(entity: userEntity, insertIntoManagedObjectContext: userContext)
我目前使用這種方法獲取對象,但試圖將對象添加到核心數據(見我的帖子更新),前取不執行過發生警告。 @Mundi – hundley 2014-12-01 22:43:42
我相應地更新了我的答案。這是插入對象的另一種標準方式。請注意,我*演員*,而你沒有。 – Mundi 2014-12-01 23:17:01
感謝您的更新,但不幸的是它仍然會產生相同的結果:無法爲實體'User'加載類'Messenger.User'@Mundi – hundley 2014-12-01 23:36:56