无法使用参数列表类型'调用'sendData'(Int32,toPeers:[AnyObject]!,

时间:2015-07-03 21:01:41

标签: ios swift multipeer-connectivity

... withMode:MCSessionSendDataMode,error:inout NSError?)'

我试图通过多重连接发送此时间,以便我可以在所有设备上同时启动一个功能,但是我一直收到上面的错误,这里是一个代码片段,请随时提出问题或是否我的代码需要更深入或缺乏解释。

@IBAction func pickS(sender: AnyObject) {


    self.presentPicker(sender)


    func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        var DestView: playMusicViewController = segue.destinationViewController as! playMusicViewController
        DestView.selectedSong = MPMediaItemCollection()

        let formatter = NSDateFormatter()

        //formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)  // you can set GMT time
        formatter.timeZone = NSTimeZone.localTimeZone() // or as local time
        formatter.dateFormat = "HH:mm:ss:SSS"



        formatter.dateFormat = "HHmmssSSS"
        var Time = formatter.stringFromDate(NSDate())
        var startTime = (Time as NSString).intValue + 100
        println(startTime)
        let msg = startTime

        var error : NSError?

        self.session.sendData(msg, toPeers: self.session.connectedPeers, withMode: MCSessionSendDataMode.Unreliable, error: &error)

        if error != nil {
            print("Error sending data: \(error?.localizedDescription)")
        }

       // self.updateChat(self.messageField.text, fromPeer: self.peerID)

        //self.startTime.text = ""

    }


}

2 个答案:

答案 0 :(得分:1)

方法sendData:toPeers:WithMode:error的第一个参数必须是NSData对象,而不是Int32

答案 1 :(得分:0)

提供给toPeers参数的对象必须是array of MCPeerID。您的self.session.connectedPeers属性是否具有该类型?

修改

重新阅读问题后,您需要将msg转换为NSData类型的对象。现在它是Int。我不确定你要发送什么,但是如果你想发送当前日期和放大器,请说出来。时间:

let now = NSDate()
let nowData = NSKeyedArchiver.archivedDataWithRootObject(now)
var error : NSError?

self.session.sendData(nowData, toPeers: self.session.connectedPeers, withMode: MCSessionSendDataMode.Unreliable, error: &error)