首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过NSArray向CLBeaconRegion添加setValue forKey原因错误

通过NSArray向CLBeaconRegion添加setValue forKey原因错误
EN

Stack Overflow用户
提问于 2013-10-21 19:01:39
回答 2查看 297关注 0票数 1

是否可以通过CLBeaconRegionsetValue forKey添加数组

我试过加一句:

代码语言:javascript
复制
[regionAdvert setValue:haveArray forKey:@"advertArray"];

但我只收到以下错误:

代码语言:javascript
复制
> Terminating app due to uncaught exception 'NSUnknownKeyException',
> reason: '[<CLBeaconRegion 0x15379600> setValue:forUndefinedKey:]: this
> class is not key value coding-compliant for the key advertArray.'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-21 19:09:50

setValue:forKey:是一个KVC方法,它基本上在每个类中都可用,但这并不意味着您可以将任何东西传递给它。您使用的密钥需要是一个现有的属性(实际上是一种方法,因为这就是被调用的方法,或者是一个已处理的不存在的密钥)。无论如何,问题是在尝试设置密钥之前,您应该知道密钥的存在。

从技术上讲,您可以使用objc_setAssociatedObject将任意对象与其他对象关联起来,但在本例中,我鼓励您在决定如何显示警报之前使用majorminor属性检查该区域的用途。

票数 1
EN

Stack Overflow用户

发布于 2013-10-22 03:11:20

不,你不能这么做。如果希望将其他数据与CLBeaconRegion相关联,则可以使用其他数据结构,如NSDictionary。因为每个CLBeaconRegion都是用唯一的“标识符”字符串构造的,所以可以将该标识符用作NSDictionary中的密钥,以存储其他任意数据对象。

此外,您不应该更改一旦构建的CLBeaconRegion。田野是不可改变的。这没什么大不了的--只有三个领域。只需创建一个新的CLBeaconRegion,从您希望保留的旧CLBeaconRegion复制任何标识符。

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

https://stackoverflow.com/questions/19502571

复制
相关文章

相似问题

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