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