gpt4 book ai didi

swift - 我可以在 CLCircularRegion 中设置值吗?

转载 作者:行者123 更新时间:2023-11-28 15:00:53 24 4
gpt4 key购买 nike

我正在使用 CLCircularRegion 开发应用。

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

        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)
}
}

"Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key bb"

我可以在 CLCircularRegion 中设置 value(url) 吗??

最佳答案

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

您误解了 setValue 的作用 - 它是基类 NSObject 上的一个方法,它允许设置通过引用其“名称”或键进行分类。不建议在 Swift 中使用它(它是 Objective-C 的遗留问题)。

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

要么

struct MyRegion {
var region: CLCircularRegion
var msg: String
var url: String
}

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”或类似名称。我只是用它来对应您问题的术语。

关于swift - 我可以在 CLCircularRegion 中设置值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48923155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com