哪些类可以用作 NSDictionary 中的键?

发布于 2024-11-18 15:53:50 字数 69 浏览 2 评论 0原文

我们可以只使用 NSString 对象作为 NSDictionary 中的键吗?我们如何知道哪些对象可以使用,哪些不能使用?

Can we use only NSString objects as key in an NSDictionary? How do we know which objects can be used and which cannot?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

望她远 2024-11-25 15:53:50

来自文档

一般来说,键可以是任何对象(只要它符合 NSCopying 协议),但请注意,使用键值编码时,键必须是字符串(参见“键-值编码基础”)。

因此,除了字符串之外,您还可以使用任何可复制的内容,但它们对于 KVC 来说会出现问题。我只是使用字符串作为键来保持安全、一致和简单。

From the documentation:

In general, a key can be any object (provided that it conforms to the NSCopying protocol), but note that when using key-value coding the key must be a string (see “Key-Value Coding Fundamentals”).

So you can use anything copyable besides strings, but they'll be problematic with KVC. I just use strings for keys to keep things safe, consistent and simple.

雨落□心尘 2024-11-25 15:53:50

您可以使用任何符合 NSCopying 的内容。也就是说,您可以使用 id 类型的对象,只要它们符合 NSCoding 协议即可。

在键为 NSString 的实例中,则调用 isEqualToString: 进行检索。否则,对对象调用 isEqual: 以确定该键是否与请求的键匹配。

键(以及与此相关的值)不能为 nilNULL。但是,它们可以是[NSNull null]

You can use anything that conforms to NSCopying. That is, you can use id - type objects, as long as they conform to NSCoding protocol.

In instances where the key is NSString, then isEqualToString: is called for retrieval. Otherwise, isEqual: is called on the object to determine whether the key matches the requested key.

The key (and value for that matter) cannot be nil or NULL. They can, however, be [NSNull null].

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文