首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用CLCircularRegion设定值吗?

我可以用CLCircularRegion设定值吗?
EN

Stack Overflow用户
提问于 2018-02-22 08:54:56
回答 2查看 316关注 0票数 0

我正在用CLCircularRegion开发应用程序。

我想在CLCircularRegion中设置值。所以我做了region.setValue(forKey:key)但是它显示了

代码语言:javascript
复制
        if CLLocationManager.locationServicesEnabled() {
            for obj in pushInfoArr! {
                let localLatiStr = obj["local_latit"] as! String
                let localLongitStr = obj["local_longit"] as! String
                let localMsg = obj["local_mesg"] as! String
                let url = obj["cnnct_url"] as! String
                let localLati = Double(localLatiStr)
                let localLongi = Double(localLongitStr)
                let center = CLLocationCoordinate2DMake(localLati!, localLongi!)
                region = CLCircularRegion(center: center, radius: 1000, identifier: localMsg)
                region.setValue(localMsg, forKey: "msg")
                region.setValue(url, forKey: "url")
                region.notifyOnEntry = true
                self.locationManager.startMonitoring(for: region)
            }
    }

“由于未指明的异常'NSUnknownKeyException‘而终止应用程序,原因:’setValue:forUndefinedKey:该类不符合键bb的键值编码‘”

我可以用CLCircularRegion设置值(Url)吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-22 09:22:08

Swift不是Javascript --您不能在现有的类或结构上创建新的属性,而且它继承的CLCircularRegionCLRegion都没有属性msgurl

您误解了setValue的作用--它是基类NSObject上的一种方法,它允许引用类的“名称”或键来设置类的现有属性。Swift不推荐使用它(这是一个目标-C遗留)。

您需要做的是创建一个包含区域和所需属性的结构或子类:

任一

代码语言:javascript
复制
struct MyRegion {
    var region: CLCircularRegion
    var msg: String
    var url: String
}

代码语言:javascript
复制
class MyRegion: CLCircularRegion {
    var msg: String
    var url: String
    init(centre: CLLocationCoordinate2D, radius: Double, identifier: String, msg: String, url: String) {
        super.init(centre: centre, radius: radius, identifier: identifier)
        self.msg = msg
        self.url = url
    }
}

附注:不要使用'url‘作为不是URL的属性的名称--称为'urlString’或其他类似的属性。我只是用它来对应你问题的术语。

票数 1
EN

Stack Overflow用户

发布于 2018-02-22 09:14:36

不,CLCircularRegion没有一个名为url的属性,因此不能对该类型的对象设置url。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48923155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档