gpt4 book ai didi

ios - 是否可以使用 startMonitoringForRegion : and retrieve a correct version/copy of it later with monitoredRegions 存储 CLRegion 的子类

转载 作者:行者123 更新时间:2023-12-01 19:01:41 24 4
gpt4 key购买 nike

本周我尝试继承 CLRegion通过在其上添加新的属性和方法,然后对其进行监视。

@interface MyClass : CLRegion

我这样做是因为我发现它比单独存储 CLRegion 更干净。 ,以及分别添加的属性。

我实现了 NSSecureCodingNSCopying此子类中的协议(protocol)以使其工作。
使用 startMonitoringForRegion: 监控这个子类一切正常或 stopMonitoringForRegion: .

但是当使用 (NSArray *)monitoredRegions: 检索现有区域时我的问题发生:

如果我通过标识符将该区域标识为子类区域,
然后将其强制转换为子类(MyClass *)以调用特定方法,
这不起作用,我得到一个“CLCircularRegion 的未知选择器”异常。

我高度怀疑这是行不通的,因为在 Objective-C 中没有虚拟方法之类的东西,因此当对象由 monitorRegions 构建时,不会调用儿子的 init//initWithCoder//encodeWithCoder//..。

据了解,我被迫将附加属性存储在 NSUserDefaults并在我识别区域时检索它,但我发现它有点脏......

那么有没有办法做到这一点?或者我应该保留 NSUserDefault解决方案 ?

最佳答案

不,您将获得“库存” CLRegions

引用:“此集合中的对象不一定是您在注册时指定的相同对象。系统仅维护区域数据本身。因此,唯一标识已注册区域的唯一方法是使用其标识符属性。”

关于ios - 是否可以使用 startMonitoringForRegion : and retrieve a correct version/copy of it later with monitoredRegions 存储 CLRegion 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22408954/

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