2016-07-20 18 views
1

Ich bin neu in MultipeerConnectivity, wenn ich meine benutzerdefinierte sendData Funktion bin der Umsetzung, es zeigt Cannot invoke 'sendData' with an argument list of type '(NSData,toPeer:NSArray,withMode:MCSessionSendDataMode',error:inout NSError?)mit einer Argumentliste der Typ nicht aufrufen ‚senddata‘ Kann ‚(NSData, toPeer: NSArray, ......‘

Wie zu beheben, dass:

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

, welche Version von Swift verwenden Sie? – Asdrubal

Antwort

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

} 

Diese Methode ist nicht eine Boolesche in Swift 2.x zurückgibt

Dies ist die Methode aus der Dokumentation von Apple

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

Diese Mittel haben Sie so etwas wie dieses auf Swift Getestet

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

2 und Xcode 7.3.1

+0

Es funktioniert! Vielen Dank! –