2016-07-20 1 views
1

Je suis nouveau à MultipeerConnectivity, quand je suis ma fonction personnalisée de mise en œuvre sendData, il montre Cannot invoke 'sendData' with an argument list of type '(NSData,toPeer:NSArray,withMode:MCSessionSendDataMode',error:inout NSError?)ne peut être invoqué « sendData » avec une liste d'arguments de type '(NSData, toPeer: NSArray, ......

comment résoudre ce problème:

func sendData(dataToSend:dataSend,toPeer: MCPeerID)->Bool{ 
    let dataToSend = NSKeyedArchiver.archivedDataWithRootObject(dataToSend) 
    let peerArray = NSArray(object: toPeer) 
    var error:NSError? 

    let arr = [MCPeerID]() 
//this line shows error 
    if !self.session!.sendData(dataToSend, toPeers: peerArray, withMode: MCSessionSendDataMode.Reliable, error: &error) { 

    } 
} 
+0

version de Swift utilisez-vous? – Asdrubal

Répondre

1
if !self.session!.sendData(dataToSend, toPeers: peerArray, withMode: MCSessionSendDataMode.Reliable, error: &error) { 

} 

Cette méthode ne renvoie pas une valeur booléenne dans 2.x Swift

Ceci est la méthode de la documentation d'Apple

func sendData(_ data: NSData, 
     toPeers peerIDs: [MCPeerID], 
    withMode mode: MCSessionSendDataMode) throws 

Cela signifie que vous ne doivent quelque chose comme ça

do { 
    try self.session!.sendData(dataToSend, toPeers: peerArray, withMode: MCSessionSendDataMode.Reliable) 
    print("success") 
    // do something 
} catch { 
    print("failure") 
    // do something else 
} 

Testé sur Swift 2 et Xcode 7.3.1

+0

Cela fonctionne! Merci! –