2015-02-11 151 views
-1

我正在研究區域內某個範圍信標的iOS應用程序。我有一個CLLocationManager委託,它定期從區域內的所有信標中獲取信息。我有一個循環遍歷所有找到的信標並將數據打印到控制檯。Beacon UUID說明

for i in 0..<knownBeacons.count{ 
    var uuid = knownBeacons[i].proximityUUID.description 
    println(uuid) 
} 

但是,當我打印每個信標的UUID描述時,它會添加附加信息。例如,打印語句返回:

<__NSConcreteUUID 0x1700351e0> B9407F30-F5F8-466E-AFF9-25556B57FE6D 

什麼我真正需要的是剛剛過去的一部分「B9407F30-F5F8-466E-AFF9-25556B57FE6D」,並想在<>括號去掉一切。有人能告訴我如何做到這一點?或者,如果我不應該使用UUID.description屬性,並且應該使用別的東西。謝謝。

更新:爲了清楚起見,我已經包括了完整的ViewController類

class ViewController: UIViewController, CLLocationManagerDelegate { 

    let locationManager = CLLocationManager() 
    let region = CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "B9407F30-F5F8-466E-AFF9-25556B57FE6D"), identifier: "Estimotes") 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     locationManager.delegate = self; 
     if(CLLocationManager.authorizationStatus() != CLAuthorizationStatus.AuthorizedWhenInUse){ 
      locationManager.requestWhenInUseAuthorization() 
     } 
     locationManager.startRangingBeaconsInRegion(region) 
     locationManager.startUpdatingLocation() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func locationManager(manager: CLLocationManager!, didRangeBeacons beacons: [AnyObject]!, inRegion region: CLBeaconRegion!){ 
     let knownBeacons = beacons.filter{ $0.proximity != CLProximity.Unknown } 
     if(knownBeacons.count > 3) {   
      for i in 0..<3{ 
       var uuid = knownBeacons[i].proximityUUID 
       var major = knownBeacons[i].major 
       var minor = knownBeacons[i].minor 
       var proximity = knownBeacons[i].proximity.rawValue 
       var rssi = knownBeacons[i].rssi 
       var accuracy = knownBeacons[i].accuracy.description 
       println(uuid) 
      } 
     } 
    } 
} 

回答

4
var uuid = knownBeacons[i].proximityUUID!.UUIDString 
+0

可惜......我試過了。我在XCode中得到以下錯誤:''NSUUID!'沒有名爲'UUIDString''的成員 – andyopayne 2015-02-11 17:13:23

+0

另外,我不確定爲什麼這個問題被投票。 – andyopayne 2015-02-11 17:14:32

+0

爲什麼說NSUUID !,它是一個可選的,需要解包?例如'let thing = NSUUID()''let that = thing.UUIDString'' println(that)'對我有用。你如何創建knownBeacons數組? – 2015-02-11 17:17:29