Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone开发:提供什么样的数据结构? 这是一个非常新的问题,但是iPhone API提供了任何数据结构来工作(即链表、散列图等)? < P>可以使用 >在C或C++上用iPhone SDK实现的< < />强数据结构> < /P>_Iphone_Objective C_Cocoa_Data Structures - Fatal编程技术网

iPhone开发:提供什么样的数据结构? 这是一个非常新的问题,但是iPhone API提供了任何数据结构来工作(即链表、散列图等)? < P>可以使用 >在C或C++上用iPhone SDK实现的< < />强数据结构> < /P>

iPhone开发:提供什么样的数据结构? 这是一个非常新的问题,但是iPhone API提供了任何数据结构来工作(即链表、散列图等)? < P>可以使用 >在C或C++上用iPhone SDK实现的< < />强数据结构> < /P>,iphone,objective-c,cocoa,data-structures,Iphone,Objective C,Cocoa,Data Structures,例如,我使用了很多 除此之外,您还可以使用Cocoa的复杂数据结构,如: 安萨雷 NSDictionary(散列) NSSet(套) < Opjy-C语言不提供任何链接表等固有数据结构。但是,由于它是基于C/C++代码库的,所以可以在C或C++中实现的任何东西都可以直接在Objtovi-C中完成,包括链表和其他数据结构。(一个在Mac和iOS上都可用的框架)实现,包括NSArray、NSDictionary和NSSet,以及它们的可变变体。(Leopard还介绍了nspointerray、NSH

例如,我使用了很多

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

  • 安萨雷
  • NSDictionary(散列)
  • NSSet(套)

  • < Opjy-C语言不提供任何链接表等固有数据结构。但是,由于它是基于C/C++代码库的,所以可以在C或C++中实现的任何东西都可以直接在Objtovi-C中完成,包括链表和其他数据结构。(一个在Mac和iOS上都可用的框架)实现,包括
    NSArray
    NSDictionary
    NSSet
    ,以及它们的可变变体。(Leopard还介绍了
    nspointerray
    NSHashMap
    NSHashTable
    ,一个带有附加选项的数组/字典/集合。)(比如使用弱引用),这使得它们在垃圾收集环境中使用起来相当方便。但是,这些类目前在iPhone上不可用,目前也没有什么意义,因为iOS不支持垃圾收集。)这些类速度非常快,适用于任何可可应用中的通用用途

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

    一个选项是,我维护的开源Objective-C框架。它实现了其他几种常见的数据结构,如堆栈/队列/队列、链表、排序集等。这些结构采用and(10.5+上加上),因此它们可以无缝地与原生Objective-C代码配合使用。该项目允许您构建一个静态库,也可以在iPhone上使用。由于该框架是开源的,如果需要,您甚至可以仅在项目中直接包含相关代码


    <> P>罗马> C++ >和STL结构,我发现混合ObjuleC和C++往往更令人困惑,导致错误的bug,尤其是新手。这不是针对C++的BASH,只是一个“在美国的时候”。原则。当使用C++时,STL当然是首选方法。如果你已经在C++中混合了,你可能很舒服,STL可能是一个不错的选择;即使如此,我发现使用本地可可集合产生更明显的可读代码。e是Cocoa的一部分。Objective-C只是使用的语言。这不是什么大问题,但养成正确引用这些内容的习惯是个好主意。;)同意。我将改变我的答案以反映你所说的。谢谢!如果那些觉得有必要否决投票的人能留下一些反馈,说明他们为什么觉得回答“没有帮助”,那当然很好…我不相信iphone上有NSHashMap、NSHashTable或NSPointerArray。卡尔是对的,因为我在其他地方找不到这些信息,所以我想明确指出:iphone SDK中没有NSHashMap、NSHashTable和NSPointerArray。有关如何使用NSValue框指针的描述,请参阅此问题:啊这是错误的链接,但是……关键是:使用NSCORE来包装指针并将其放入COCOA集合。我很难找到<代码> NSHASMAP> <代码>;它不是应该是代码> NSMAPABTHE>/代码>吗?Objto-C绝不是“基于C++代码库”。C,是的,但是任何C++都必须要使用。(并且有点自虐)请注意,
    NS(可变)数组
    不一定在C样式数组中存储对象指针。它会根据您的使用方式动态更改其在C样式数组、链表和任何其他结构之间的内部表示形式。