рекламодатель многопользовательского подключения

У меня есть класс, реализующий MCNearbyServiceAdvertiserDelegate. После инициализации я могу увидеть рекламируемый одноранговый узел от клиента, если вызову MPCManager.advertiser.startadvertisingpeer(). Я пытаюсь реализовать метод, чтобы остановить рекламу, изменить discoveryInfo рекламодателя, а затем снова запустить рекламу с новой информацией об обнаружении.

Методы успешно останавливают рекламу пиров, но не запускают рекламу снова. Не могли бы вы помочь мне с этим

Сведения о коде

classMPCManager:NSObject,MCSessionDelegate,MCNearbyServiceBrowserDelegate, MCNearbyServiceAdvertiserDelegate {

var delegate: MPCManagerDelegate?

var session: MCSession!
var sessionList: [MCSession]! = []
var peer: MCPeerID!

var browser: MCNearbyServiceBrowser!

var advertiser: MCNearbyServiceAdvertiser!

var foundPeers:[NSDictionary]! = [] 

var invitationHandler: ((Bool, MCSession!)->Void)!

var discoveryInfo:[String: String]!

init(discoveryInfo:[String:String]!, peer:MCPeerID!) {
    super.init()
    self.discoveryInfo = discoveryInfo
    self.peer = peer
    session = MCSession(peer: self.peer)
    session.delegate = self
    browser = MCNearbyServiceBrowser(peer: peer, serviceType: "myservicetype")
    browser.delegate = self
    advertiser = MCNearbyServiceAdvertiser(peer: self.peer, discoveryInfo: self.discoveryInfo, serviceType: "myservicetype")
    advertiser.delegate = self
}
 /////some other methods
///the problematic method
 func setAdvertising(discoveryInfo:[String:String]!){
    print("setting advertising")
    self.discoveryInfo = discoveryInfo
    advertiser.stopAdvertisingPeer()
    advertiser = nil
    self.advertiser =  MCNearbyServiceAdvertiser(peer: self.peer, discoveryInfo: self.discoveryInfo, serviceType: "myservicetype")
   self.advertiser.delegate = self
   print("advertising from set advertising")
   advertiser.startAdvertisingPeer()
 }

person Noel Carcases    schedule 09.11.2015    source источник


Ответы (1)


Наконец-то заработайте. В других сообщениях я пытался использовать информацию об обнаружении в качестве словаря вместо [String:String], странная вещь, но теперь она работает :D!. Спасибо всем, что нашли время, чтобы прочитать

person Noel Carcases    schedule 10.11.2015
comment
Для других, читающих это, объявление discoveryInfo является необязательным [String:String]? а не [Строка:Строка]. - person Marcy; 16.07.2019