- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我是 iOS 开发新手,所以请不要用 objective-c 示例向我解释。
我的问题是:
我完成了这门课:
import UIKit
import CoreLocation
class BeaconRadar: NSObject, CLLocationManagerDelegate {
var manager : CLLocationManager!
var region : CLBeaconRegion!
var seenError = false
var locationFixAchieved = false
var locationStatus = "Not Started"
init() {
super.init()
var major = CLBeaconMajorValue( 10 )
var uuid = NSUUID( UUIDString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0" )
var id = "test"
manager = CLLocationManager()
region = CLBeaconRegion( proximityUUID: uuid, major: major, identifier: id )
manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBest
manager.requestAlwaysAuthorization()
manager.startRangingBeaconsInRegion(region)
}
func locationManager(manager: CLLocationManager!, didRangeBeacons beacons: AnyObject[], inRegion region: CLBeaconRegion! ){
if (locationFixAchieved == false) {
locationFixAchieved = true
println(beacons)
}
}
// If failed
func locationManager(_manager: CLLocationManager!, rangingBeaconsDidFailForRegion region: CLBeaconRegion!, withError error: NSError!){
manager.stopUpdatingLocation()
if (error) {
if (seenError == false) {
seenError = true
println("Error getting location")
}
}
}
// // authorization status
func locationManager(_manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus){
println("2")
var shouldIAllow = false
switch status {
case CLAuthorizationStatus.Restricted:
locationStatus = "Restricted Access"
case CLAuthorizationStatus.Denied:
locationStatus = "User denied access"
case CLAuthorizationStatus.NotDetermined:
locationStatus = "Status not determined"
default:
locationStatus = "Allowed Access"
shouldIAllow = true
}
NSNotificationCenter.defaultCenter().postNotificationName("LabelHasbeenUpdated", object: nil)
if (shouldIAllow == true) {
println("Location Allowed")
// Start location services
manager.startUpdatingLocation()
} else {
println("Denied access: \(locationStatus)")
}
}
}
我的 viewController 是:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var location = BeaconRadar()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我期待在授权状态的实现函数中获得消息之一。 (BeaconRadar 中的最后一个)。但我一无所获。
如果我将在 viewController 中而不是在新类中实现所有这些方法(即:
class ViewController: UIViewController, CLLocationManagerDelegate {
.....
}
然后它就可以正常工作了...
我错过了什么吗?
最佳答案
您已将 BeaconRadar
实例声明为 viewDidLoad
中的局部变量,因此一旦此函数退出,BeaconRadar 实例就会被释放。
您应该将 BeaconRegion 变量移出函数 -
class ViewController: UIViewController {
let location = BeaconRadar()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
关于ios - CLLocationManagerDelegate 没有捕获事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24585718/
我有一个 View Controller ,它具有以下功能: func locationManager(manager: CLLocationManager, didUpdateLocations l
-- 最终编辑:更准确的问题Unit Test CLLocationManager implementation 我正在尝试模拟 CLLocationManagerDelegate 来处理用户对地理定
@property (nonatomic,strong) CLLocationManager *locManager; 这是我设置管理器的地方: -(void) viewDidAppear:(BOOL
首先,我是 iOS 开发新手,所以请不要用 objective-c 示例向我解释。 我的问题是: 我完成了这门课: import UIKit import CoreLocation class Bea
我正在尝试在 ViewController 上创建一个仅具有此接口(interface)的 CLLocationManager 单例 Location.start() 但我没有看到使用此结构的任何位置
如何实现它以显示ALWAYS 街道名称?现在我有时只有街道名称,但总是城市名称。它是如何工作的? 我在类里面使用 CLLocationManagerDelegate,我想要: Warsaw, Mick
我正在创建一个使用核心位置的应用程序,这是我的代码: .h : #import #import @interface ViewController : UIViewController
我尝试将 CLLocationManagerDelegate 实现移动到一个单独的类(文件)中,以免弄乱 ViewController 代码,但每次都出现内存错误 EXC_BAD_ACCESS (co
CLLocationManagerDelegate 中的 UpdatedLocation 现在已过时。 我如何获得此功能以及在什么新函数调用下? 旧: public override
我是一名编码新手,我正在使用教程来帮助我学习。 我正在制作一个天气应用程序,但我收到了这个错误,希望有人能提供帮助。 'CLLocationManagerDelegate' cannot be con
我现在正在使用 estimote 的 ibeacon 标签,我是 iOS 编码的新手,同时我通读了他们定制的 beaconmanager 和 beaconmanagerdelegate 类的实现。我发
我想获取我的 iOS 应用程序的当前地理位置,并在 CLLocationManagerDelegate 文档中查找方法 locationManager:didUpdateLocations: .在讨论
CLLocationManagerDelegate 方法是否有可能 locationManager:didUpdateLocations:在使用过程中返回缓存值? 或者是否存在 CoreLocatio
我正在运行 Xcode 10 和 iOS 12 我在 CLLocationManager 单例的类扩展中编码的每个委托(delegate)方法上都收到此警告: 实例方法“locationManager
我在使用 CLLocationDelegate 获取我的位置时遇到问题。我创建了 UIView 的新子类并且运行良好,但是当我创建 NSObject 的子类时,未调用 CLLocationDelega
我刚刚从 Xcode 6 Beta 3 升级到 Xcode 6 Beta 6。在 Beta 3 中,一切都运行良好,并且按照我想要的方式编译。 现在,我无法让 CLLocationManagerDel
在swift中,CLLocationManagerDelegate didFailWithError的方法错误总是CLError?如果是的话,有什么引用吗? Discussion: Invoked w
我正在开发 Apple Watch 应用来检索用户位置。我已经将 CoreLocation 框架导入到 interfacecontroller 类中,并向类中添加了委托(delegate)。这是行不通
我正在尝试创建一个简单的应用程序来找出某人所在的区域,但我被卡住了,因为当应用程序运行和查找位置时,没有调用任何 CLLocationManagerDelegate 方法。 如果相关,我也没有看到要求
我导入 CoreLocation,然后在 didFinishLaunchingWithOptions 中添加 locationManager.delegate = self 和 let locatio
我是一名优秀的程序员,十分优秀!