簡體   English   中英

GameKit中的Swift完成處理程序

[英]Swift Completion Handlers in GameKit

如何在Swift中實現以下功能?

func findMatchForRequest(_ request: GKMatchRequest!,
   withCompletionHandler completionHandler: ((GKMatch!,
                                  NSError!) -> Void)!)

當我嘗試

var request = GKMatchRequest();
request.minPlayers = 2;
request.maxPlayers = 4;    
GKMatchmaker.sharedMatchmaker().findMatchForRequest(request, withCompletionHandler: { (match : GKMatch!, error: NSError!) -> Void in {

                }
            })

它給出了“無法轉換表達式類型”的編譯錯誤。 我是否缺少明顯的東西?

你近了 您的完成處理程序中僅包含一組不必要的花括號。 這是正確的版本:

GKMatchmaker.sharedMatchmaker().findMatchForRequest(
    request,
    withCompletionHandler: {(match : GKMatch!, error: NSError!) -> Void in
        NSLog("This works")
})

編輯:我的意思是大括號!

僅供參考,您可以使用結尾閉包:

GKMatchmaker.sharedMatchmaker().findMatchForRequest(request) {
match, error in
        println("This works")
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM