Cocoa中是否有整数向量结构,还是应该定义自己的结构?

时间:2009-09-06 05:01:09

标签: iphone objective-c core-foundation

我将跟踪一对int和NSUIntegers作为数组索引和其他东西。

是否有类似CGPoint的内容已定义?

如果重要的话,我正在iPhone上做图形处理。

3 个答案:

答案 0 :(得分:3)

NSIndexSet可以包含一堆索引,并且有一些方便的操作API。

对于简单的需求,您可以只定义一个结构,或者更好地声明一个类。我经常声明一个带有一组@properties,@synthesizing所有getter / setter的类来封装数据。简单,非常少的代码,它简化了重构以便稍后添加功能(例如,如果你确定你的结构真的想成为一个类)。

答案 1 :(得分:3)

定义自己的结构来保存数据相当容易。您可以使用CGPoint结构类型(其中NSPoint几乎是#define别名),但您确实需要定义您正在使用它的内容。

typedef struct _pair {
  int first,
  int second
} pair;

然后你可以这样做:

对foo; foo.first = 1; foo.second = 2;

请注意,只有拥有固定数量的元素才有意义。如果您正在寻找一组元素,那么您真的需要一组整数。

答案 2 :(得分:1)

CGPointNSPoint(请注意iPhone上没有NSPoint)可以正常工作,但您需要考虑使用其中任何一个的语义含义。如果你真的在处理向量,那么你应该使用它们。但是,如果您只是处理对索引,则可能需要声明自己的结构或类。

如果您确定只需要一个数据结构(即除了容纳数据之外没有任何功能的东西),请声明一个C结构。它非常简单,使用的内存比Objective-C类少。但是,如果您希望它具有内置功能,请使用@bbum解释的类。