簡體   English   中英

多點連接發送和接收NSManagedObject

[英]Multipeer Connectivity send and receive NSManagedObject

我正在尋找通過多對等連接框架發送和接收NSManagedObject的方法。

class MyObject: NSManagedObject {

@NSManaged var name: String
@NSManaged var children: NSSet

}

我已經設法發送了字符串和字典,但是我需要發送一個帶有NSSet的NSManagedObject。 這可能嗎?

這是我嘗試過的:

let data = NSKeyedArchiver.archivedDataWithRootObject(nsmanagedobject)

    if session.connectedPeers.count > 0 {

        var error: NSError?
        if !session.sendData(data,toPeers: session.connectedPeers, withMode: .Reliable, error: &error){

            println("SEND ERROR:")
            println(error)

        }

    } else {

        println("NO PEERS CONNECTED!")

    }

func session(session: MCSession!, didReceiveData data: NSData!, fromPeer peerID: MCPeerID!) {

    NSLog("%@", "didReceiveData: \(data.length) bytes")

    let nsmanagedobject = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! MyObject

}

NSManagedObject發送到其他設備的問題在於它已被持久保存到源設備上的Core Data,但是不能簡單地反序列化並插入到目標的持久性存儲中。

我建議將對象序列化為NSDictionary ,發送該數據,然后實施查找或創建以在目標設備上正確插入新的托管對象。

不行,這是不可能的。 NSManagedObject不僅僅是一個數據存儲,它還具有一個狀態機。

要發送這樣的數據,您需要將其轉換為更原始的形式,數組,字典等。

Bummer,我對此感到害怕。 感謝您的兩個回答! 看來我將序列化成字典。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM