我正在尝试将此文本转换为swift:
- (void)sendData:(NSData*)data
{
NSError *error;
GameKitHelper *gameKitHelper = [GameKitHelper sharedGameKitHelper];
BOOL success = [gameKitHelper.match
sendDataToAllPlayers:data
withDataMode:GKMatchSendDataReliable
error:&error];
if (!success) {
NSLog(@"Error sending data:%@", error.localizedDescription);
[self matchEnded];
}
}
现在我到这里为止:
func sendData(data: NSData) {
var error: NSError?
var gameKitHelper = GameKitHelper.sharedGameKitHelper()
var success = try! gameKitHelper.match.sendDataToAllPlayers(data, withDataMode: GKMatchSendDataReliable)
if !success {
print("Error sending data:\(error.localizedDescription)")
self.matchEnded()
}
}
但这给了我一个错误,if (!succes)
我阅读了Apple文档,其中的Objective-C版本.sendDataToAllPlayers()
将返回布尔值,而迅捷版本则不会。
那么我该如何处理错误
sendDataToAllPlayers
如果发生错误,该函数将引发异常。您需要一个catch块来处理它:
func sendData(data: NSData) {
var gameKitHelper = GameKitHelper.sharedGameKitHelper()
do {
try gameKitHelper.match.sendDataToAllPlayers(data, withDataMode: .Reliable)
}
catch let error as NSError {
print("Error sending data:\(error.localizedDescription)")
self.matchEnded()
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句