objective-c – NSSet实现

objective-c – NSSet实现,第1张

概述这个问题出于好奇,但NSSet如何实现?后面有什么数据结构,添加和删除元素的访问时间是多少?如果我不得不猜测,我会说这是一种哈希表/字典数据结构,但是在这种情况下为什么要区分NSSet和NSMutableSet? 那么,正如巴伐利亚州在评论中指出的那样,苹果实际的CoreFoundation来源也是 open and available for your perusal. NSSet在 CFSet 这个问题出于好奇,但NSSet如何实现?后面有什么数据结构,添加和删除元素的访问时间是多少?如果我不得不猜测,我会说这是一种哈希表/字典数据结构,但是在这种情况下为什么要区分NSSet和NSMutableSet?解决方法 那么,正如巴伐利亚州在评论中指出的那样,苹果实际的CoreFoundation来源也是 open and available for your perusal. NSSet在 CFSet之上实现,其代码由散列表模板生成(与CFDictionary相同),使用 CFBasicHash完成工作.

可变性和不可变性之间的差异似乎是结构中的一个标志(CFBasicHash.h第91行)的问题,从我的阅读到目前为止只影响对函数的调用,如CFBasicHashAddValue;有一个简单的检查可变性.然而,似乎可能的是,Cobbal对于两者之间的复制/保留行为是正确的(我刚才还没有看到那么远).

先前:
当我想知道实现细节时,偶尔会发现有趣的和有教育意义的人可以.读GNUstep的来源.当然,它们绝对不能保证以苹果的方式实施,但在某些情况下可能会有所帮助.他们的基金会版本:http://gnu.ethz.ch/debian/gnustep/gnustep-base-1.20.0/Headers/Foundation/(我希望这是最新的版本,如果没有,有人请更正我.)

总结

以上是内存溢出为你收集整理的objective-c – NSSet实现全部内容,希望文章能够帮你解决objective-c – NSSet实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1029285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存