在Location Manager Delegate上获取错误

时间:2016-01-25 01:12:45

标签: ios swift ibeacon

我正在尝试使用我从

获得的代码 https://github.com/Intermark/Buoy/tree/master/Buoy/Swift

我在BUOYListener.swift和enter code here BUOYBeacon.swift中收到以下错误

有任何想法如何解决这个问题?

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

从Swift 2.0开始,Swift编译器要求方法签名严格匹配您正在实现的协议。在这种情况下,这是CLLocationManagerDelegate和CBPeripheralManagerDelegate。

didRangeBeacons 的正确Swift签名是:

 Sub LoopNCheck()

Dim lngCount As Long
Dim lngLastRow As Long
lngLastRow = 99

For lngCount = 1 To lngLastRow
   With Range("a" & lngCount)
    .Value = lngCount
    .Offset(0, 1) = Getrandom(lngCount, lngLastRow)
    .Offset(0, 2) = Getrandom(lngCount, lngLastRow, .Offset(0, 1))
   End With
Next


End Sub

Function Getrandom(lngRestriction As Long, lngMax As Long, Optional lngSecRestriction As Long = 0)

Calculate:
Getrandom = WorksheetFunction.RandBetween(1, lngMax)

If Getrandom = lngRestriction Or Getrandom = lngSecRestriction Then GoTo Calculate

End Function

对于 peripheralManagerDidUpdateState

func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion)

最后, startAdvertising 需要func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager) 字典,但您将 peripheralData 投射到[String: AnyObject]。请改用以下演员:

[NSObject: AnyObject]