初めまして!
データの通信処理について質問させてください。
以下の例を参考に、MultipeerとNSKeyedArchiver.archivedData/NSKeyedUnarchiver.unarchiveObjectを利用した端末間のデータ通信処理を実装しています。
BluetoothをもちいたiOS同士の通信
Swift 4のCodable x UserDefaults
SCNnodeやworldMapなどの受け渡しは実装出来たのですが、動画ファイルの受け渡しを実装出来ません。
送信時に正しくデータを指定出来ていないか、受信時にアンアーカイブするクラスの指定を誤っている為だと思われるのですが、どなたか解決法がわかればご教示頂きたいです。
[コード]
swift
1//データ送信 2guard let video = try? NSKeyedArchiver.archivedData(withRootObject: 3NSURL(string: hitTestResult.node.accessibilityValue!)!, requiringSecureCoding: true) 4else { fatalError("can't encode anchor") } 5self.sendToAllPeers(video) 6 7//データ受信 8func receivedData(_ data: Data, from peer: MCPeerID) { 9 do{ 10//video 11 if let video = try NSKeyedUnarchiver.unarchivedObject(ofClass: data.self, from: data) { 12 //受信後の処理 13 } 14 } catch {} 15} 16// 17※1:hitTestResult.node.accessibilityValue! には、送信する側の端末の動画ファイルのディレクトリが代入されています。 18※2:ERRが出ています。(ただし修正後も構文エラーになります) 19 if let video = try NSKeyedUnarchiver.unarchivedObject(ofClass: data.self, from: data) 20→ Incorrect argument label in call (have 'ofClass:from:', expected 'ofClasses:from:') 21Replace 'ofClass' with 'ofClasses'
何卒、宜しくお願い致します…!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。