2015-11-09 1 views
0

J'ai une classe implémentant MCNearbyServiceAdvertiserDelegate. Lors de l'initialisation, je peux voir l'homologue annoncé par le client si j'appelle MPCManager.advertiser.startadvertisingpeer(). J'essaye de mettre en application une méthode pour arrêter la publicité, changer l'annonceur discoveryInfo et puis commencer à annoncer encore avec les nouvelles informations de découverte en place.multipeer connectivity annonceur

Les méthodes arrêtent avec succès la publicité par les pairs mais ne recommencent pas à faire de la publicité. Pouvez-vous s'il vous plaît me aider

code détails

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() 
} 

Répondre

0

Enfin ça fonctionne. J'ai cherché dans d'autres posts à utiliser les infos de découverte comme dictionnaire au lieu de [String: String] chose étrange mais ça marche maintenant: D !. Merci à tous qui prennent le temps de lire