【发布时间】:2009-07-21 10:08:41
【问题描述】:
我是 Objective-C 的新手,想知道管理元组集合的最佳方法是什么。在 C 语言中,我会使用二维数组或结构。
我应该创建包含这些元组的对象吗?仅对列表进行排序似乎有点过头了,还是对象初始化不会产生真正的额外负载?
【问题讨论】:
标签: objective-c cocoa collections tuples
我是 Objective-C 的新手,想知道管理元组集合的最佳方法是什么。在 C 语言中,我会使用二维数组或结构。
我应该创建包含这些元组的对象吗?仅对列表进行排序似乎有点过头了,还是对象初始化不会产生真正的额外负载?
【问题讨论】:
标签: objective-c cocoa collections tuples
对象的生成肯定有一些开销。对于少量的对象,那么使用 ObjC 数据结构仍然是合适的。如果您有大量元组,我会在 C 结构数组中管理它们。请记住,Objective-C 实际上只是 C。在 Objective-C 中使用 C 结构是适当且常见的(在一定程度上;了解这一点是成为优秀 Objective-C 开发人员的一个重要里程碑)。
通常,对于这种数据结构,我可能会创建一个管理整个集合的 Objective-C 对象。因此,外部调用者会看到一个 Objective-C 接口,但内部数据将存储在更高效的 C 结构中。
如果快速访问大量元组很常见,我的集合对象可能会提供类似于[NSArray getObjects:range:] 的“get”方法。以“get”开头的 ObjC 方法表示第一个参数是一个将被该方法覆盖的指针。这通常用于对 ObjC 对象管理的事物进行高性能的类 C 访问。
这种数据结构正是 ObjC 开发人员将 ObjC 的优雅和可维护性与 C 的性能和简单性相结合的方式。
【讨论】:
我认为您必须满足于 NSArray 对象的 NSArray ,或者 NSDictionary 对象的 NSArray 。您始终可以创建自己的课程,或者按照您在 C 中的方式进行。
【讨论】:
有几种不同的方法可以解决这个问题:
【讨论】: