2017-04-20 51 views
0

我試圖爲多個區域的響鈴信標構建一個應用程序。我發現教程https://mentormate.com/blog/beacon-ranging-ios/,我做到了,但我不知道如何更新信標。多個區域的快捷範圍信標

+0

你是什麼意思「更新信標」? – Larme

+0

我的意思是當我啓動應用程序時,它顯示在我附近的信標。但是如果我關閉另一臺電源的信號燈或電源,應用程序不會更新列表。因爲只做一次。 – xcocoader

回答

0

教程顯示節目做範圍多個信標區域中的以下方針:

// 4 
let beaconRegions = [CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "F7826DA6-4FA2-4E98-8024-BC5B71E0893E")!, identifier: "Kontakt"), 
        CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "B9407F30-F5F8-466E-AFF9-25556B57FE6D")!, identifier: "Estimote")] 

// 5 
beaconRegions.forEach(manager!.startRangingBeaconsInRegion) 

注意beaconRegions是具有兩個區域的定義的陣列。您可以根據需要將任意數量的區域定義添加到此數組中,以便範圍多個區域。

的代碼被設計成具有檢測到任何新的信標來更新顯示:

beacons.forEach { beacon in 
    if let index = beaconList.indexOf({ $0.1.proximityUUID.UUIDString == beacon.proximityUUID.UUIDString && $0.1.major == beacon.major && $0.1.minor == beacon.minor }) { 
     beaconList[index] = (region, beacon) 
    } else { 
     beaconList.append((region, beacon)) 
    } 
} 

// 3 
tableView.reloadData() 

beaconList.append((region, beacon))線應該做到這一點。如果它不起作用,請檢查您是否有該行,並在源代碼中正確設置了以下tableView.reloadData()

還要檢查您的新信標是否與某個區域定義匹配。

它似乎沒有代碼有任何機制來消除從列表中消失的信標。