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 - 如何在 ios 中移动标签

ios - 当我滚动表格 View 时,UITableViewCell 会更改数据和设计

objective-c - 如何更改 Cocoa 的 NSLevelIndicator 的色调?

ios - 使用手势识别器识别 UIView 中的滑动手势以滚动 scrollView

ios - IOS如何实现wifi强制门户自动登录?

iOS 浏览器不遵守 HTML5 音频预加载标签

ios - 如何检测我是否拥有 iPhone 2G,3G,3GS

iphone - 在自动旋转时重置 UIScrollView 的 zoomScale 属性

iphone - 使用音量按钮在 iPhone 上切换飞行模式

objective-c - TableView 单元格 Segues 不工作