iphone - NSMutableOrderedSet和NSNull行为?

标签 iphone objective-c ios cocoa-touch syntax

我不明白为什么不能向NSMutableOrderedSet中添加许多[NSNull null]:

NSMutableOrderedSet *set = [[NSMutableOrderedSet alloc]init];
for(int i = 0; i < 10; i++)
    {
        [set addObject: [NSNull null]];
    }

NSLog("SET COUNT : %d", set.count);

此输出:
SET COUNT : 1

如果我将其与NSMutableArray一起使用,则可以正常工作,我已经阅读了NSNull文档(虽然确实很短,但没有帮助),但它说:
"The NSNull class defines a singleton object used to represent null values in collection objects"

和NSMutableOrderedSet文档,它说这是一个
"[...] ordered collection of distinct objects"

因此,如果是收藏集,为什么不起作用?

非常感谢你

最佳答案

[NSNull null]始终返回相同的对象(NSNull的单例实例)。

NSObject *a = [NSNull null];
NSObject *b = [NSNull null];
// a == b
NSMutableSetNSMutableOrderedSet是不同对象的集合,因此它们最多可以包含此“空对象”的一个实例。

关于iphone - NSMutableOrderedSet和NSNull行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13481497/

相关文章:

iphone - 用手指拖动按钮

iPhone HD 屏幕未映射到绘图坐标

iphone - UIButton 背景 VS UIButton imageview.view

c# - Apple 在 C# 中推送通知提供程序

ios - 动态证书固定

ios - 如何在定时器选择器上传递参数

给开发者的 iPhone 图形设计建议

ios - 找不到符号 : kUTTypeImage

ios - 找不到委托(delegate)的协议(protocol)声明

android - 网页上某些缩放级别的边框