Я экспериментирую с Framework Multiber Connectivity Framework в iOS. Я хочу создать простое приложение, которое рекламирует устройство, а также просматривает другие устройства. Вот мой код:Проблема с инфраструктурой соединений Multipeer в iOS
class ViewController: UIViewController {
static let serviceType = "mult-demo"
let localPeerID = MCPeerID(displayName: UIDevice.currentDevice().name)
func startAdvertising() {
let advertiser = MCNearbyServiceAdvertiser(peer: localPeerID, discoveryInfo: nil, serviceType: ViewController.serviceType)
advertiser.delegate = self
advertiser.startAdvertisingPeer()
print("advertising")
}
func startBrowsing() {
let browser = MCNearbyServiceBrowser(peer: localPeerID, serviceType: ViewController.serviceType)
browser.delegate = self
browser.startBrowsingForPeers()
print("browsing")
}
override func viewDidLoad() {
super.viewDidLoad()
startAdvertising()
startBrowsing()
}
}
extension ViewController : MCNearbyServiceAdvertiserDelegate, MCNearbyServiceBrowserDelegate {
func advertiser(advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: NSData?, invitationHandler: (Bool, MCSession) -> Void) {
print("received invitation")
}
func browser(browser: MCNearbyServiceBrowser, foundPeer peerID: MCPeerID, withDiscoveryInfo info: [String : String]?) {
print("found peer \(peerID)")
}
func browser(browser: MCNearbyServiceBrowser, lostPeer peerID: MCPeerID) {
}
}
Однако, когда я запускаю его на двух IPADS (IOS 9), подключенных к той же сети Wi-Fi, они не обнаруживают друг друга. Что я делаю не так?
Вы должны сохранить свои «браузер» и «рекламодатель» в свойствах, а не локальные переменные, поскольку они будут выпущены после выхода из функций – Paulw11
@ Paulw11 Я исправил его, но он все еще не работает :( – Ruslan
@ Проблема с Paulw11 решена, большое спасибо) – Ruslan