当前位置:  开发笔记 > IOS > 正文

iPhone开发:有哪些数据结构?

如何解决《iPhone开发:有哪些数据结构?》经验,为你挑选了2个好方法。

这是一个非常新手的问题,但iPhone API是否提供了任何数据结构(即链表,哈希映射等)?



1> Pablo Santa ..:

您可以在iPhone SDK上使用在C或C++上实现的任何数据结构.

例如,我经常使用标准库.

除此之外,您还可以使用Cocoa的复杂数据结构,如:

    NSArray的

    NSDictionary(哈希)

    NSSet(设置)

你可以在这里找到一份配套文件.


技术性:Objective-C本身不提供这些类 - 它们是*Cocoa*的一部分.Objective-C只是使用的语言.这并不是什么大不了的事,但养成正确引用这些东西的习惯是个好主意.;)

2> Quinn Taylor..:

可可(在Mac和iOS都提供了一个框架)实现了几种常见的集合类型,包括NSArray,NSDictionary,和NSSet,以及它们的变种可变.(Leopard还介绍了NSPointerArray,NSHashMapNSHashTable一个带有附加选项的数组/字典/集(比如使用弱引用),使它们在垃圾收集环境中使用起来相当方便.但是,这些类目前在iPhone上不可用,并且目前没什么意义,因为iOS不支持垃圾收集.)这些类非常快,适用于任何Cocoa应用程序中的通用用途.

除了这些提供的结构之外,您还有以下几种选择:(1)使用这些构建块创建更复杂的结构,(2)利用现有的第三方代码,或(3)从头开始构建自己的数据结构.

一个选项是CHDataStructures.framework,一个我维护的开源Objective-C框架.它实现了其他几种常见的数据结构,例如stack/queue/deque,链表,排序集等.这些结构采用NSCoding和NSCopying(加NSFastEnumeration上1050 +),所以他们与本地Objective-C代码无缝工作.该项目允许您构建一个静态库,以便在iPhone上使用.由于此框架是开源的,因此如果需要,您甚至可以直接在项目中包含相关代码.

虽然你可以使用C++和STL结构,但我发现混合使用Objective-C和C++往往会更加混乱并导致烦恼,尤其是初学者.这不是对C++的抨击,只是"在罗马时"的原则.使用C++时,STL当然是首选方法.如果你已经在使用C++,你可能会觉得STL可能是个不错的选择; 即便如此,我发现使用本机Cocoa集合会产生更加不言而喻的可读代码.


如果那些觉得需要downvote的人会留下一些反馈意见*为什么*他们觉得回应"没有帮助",那肯定会很好......
推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有