2015-09-06 75 views
0

我有一個NSManagedObjects的數組。其中這裏的 是截短的println:Swift投NSManagedObject到派生類失敗

[<NSManagedObject: 0x7f9cbc18cf30> (entity: PTKRMessage; id: 0xd00000000004001a <x-coredata://7EEF4956-FA8F-4DE9-B94C-CF612B40AA77/PTKRMessage/p1> ; data: {...}), <NSManagedObject: 0x7f9cbc18d790> (entity: PTKRMessage; id: 0xd00000000008001a <x-coredata://7EEF4956-FA8F-4DE9-B94C-CF612B40AA77/PTKRMessage/p2> ; data: {...})] 

當我嘗試一個元素賦值給一個變量作爲NSManagedObject子類(PTKRMessage)

let message = self.tableData[indexPath.row] as! PTKRMessage 

我得到了以下錯誤:

Could not cast value of type 'NSManagedObject_PTKRMessage_' (0x7f9cbc320d10) to 'tradersofdom.PTKRMessage' (0x102dda910). 

PTKRMessage在PTKRMessage.swift中定義爲:

class PTKRMessage: NSManagedObject { 
    @NSManaged var content: String 
    ... 
} 

它可能與cast NSManagedObject to class -> Swift dynamic cast failed有關,但情況和錯誤消息是不同的。

+0

你嘗試不同的解決方案,以http://stackoverflow.com/questions/25076276/unable-to-find-specific-subclass-of-nsmanagedobject? –

+0

您是否在CoreData模型編輯器中設置了類? – Kametrixom

+0

是的,我都嘗試添加@objc(PTKRMessage)並將tradersofdom.PTKRMessage作爲類添加到實體檢查器。 (Xcode 6.4已經將它作爲PRODUCT_MODULE_NAME.PTKRMessage的前綴)。錯誤消息保持不變 –

回答

1

嘗試將其更改爲

@objc(PTKRMessage) 
class PTKRMessage: NSManagedObject { 
    @NSManaged var content: String 
    ... 
} 
+0

不幸的是,它並沒有幫助 –

+0

你在XCode核心數據模型中使用了什麼類名。如果有,則刪除模塊名稱前綴。 –