不能援引 '送出数据' 与参数列表类型 '(的Int32,toPeers:[AnyObject]!
问题描述:
... withMode:MCSessionSendDataMode,错误:INOUT NSError?)'不能援引 '送出数据' 与参数列表类型 '(的Int32,toPeers:[AnyObject]!
我试图到了这个时候送过来multipeer连接,以便我可以在所有设备上同时启动一个功能,但是我不断收到上面的错误,这是一个代码片段,请随时提问,或者我的代码需要更深入或缺乏说明。
@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 = ""
}
}
答
供给到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)
答
方法的第一个参数sendData:toPeers:WithMode:error
必须是一个NSData对象,而不是一个Int32
我很抱歉,您能否详细说明一下?作为我在代码中包含connectedPeers的唯一时间在这个函数中 – Matt
@Matt你的'connectedPeers'初始化过程如何?它必须设置为使用前 –
我很确定connectedPeers默认情况下默认情况下没有被初始化multipeer连接,我用这个http://radar.oreilly.com/2014/09/multipeer-connectivity-on-ios-8 -with-swift.html作为帮助,它似乎在没有被初始化的情况下工作 – Matt