2015-12-03 4 views
0

Я следил за this tutorial для реализации подключения Multipeer. В новой быстрой версии Делегат по умолчанию для рекламодателяswift Mulitpeer Возможность подключения, отмена приглашения с помощью обработчика приглашений

func advertiser(advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: NSData?, invitationHandler: ((Bool, MCSession) -> Void)) 
{ 

    self.invitationHandler = invitationHandler 

    delegate?.invitationWasReceived(peerID.displayName) 
} 

Ранее тип был invitationHandler : ((Bool, MCSession!)->Void)!

В соответствии с текущей выборки, когда пользователь отказывается приглашение на вызов находится в этом формате self.appDelegate.mpcManager.invitationHandler(false, nil)

Но в новая версия он не принимает nil Я пробовал self.appDelegate.mpcManager.invitationHandler(false, MCSession()) Но это привело к сбою.

Что нужно передать в сеансе, чтобы отменить приглашение вместо nil?

ответ

0

Поскольку второй параметр приглашенияHandler не является необязательным, вы должны пройти в действительный сеанс.

При создании сеанса вы должны всегда передавать действительный идентификатор MCPeerID. Например:

var session: MCSession? 
... 
session = MCSession(peer: thisPeer) 

Обычно сеанс должен быть создан один раз и храниться как переменная экземпляра вашего класса.