类似CGPoint的类,但带有整数(表示网格中的位置)

时间:2014-04-05 10:30:42

标签: ios objective-c grid

iOS中是否有内置类,可用于表示网格中的位置?

即。类似于CGPoint,但使用整数成员而不是浮点数。

我在CGGeometry Reference和其他文档中进行过搜索,但还没找到这样的类(使用这些关键字很难搜索)。

我知道我可以自己创建自定义类,但我希望有一个有用的“内置”类,方法很好。

我需要a word game表示平铺位置:

app screenshot

1 个答案:

答案 0 :(得分:2)

正如Martin R所指出的,CGPoint是一个struct,而不是一个类。话虽这么说,但没有内置的方法。您可以在整个代码中使用CGPoint相应的方法,或者您可以像这样定义自己的结构:

struct CGIntegerPoint {
    NSInteger xPos;
    NSInteger yPos;
};

typedef struct CGIntegerPoint CGIntegerPoint;

CG_INLINE CGIntegerPoint CGIntegerPointMake(NSInteger x, NSInteger y) {
    CGIntegerPoint point;
    point.xPos = x;
    point.yPos = y;
    return point;
}

现在为您提供一个新的声明类型CGIntegerPoint,以及一个相应的静态内联函数CGIntegerPointMake(),它接受两个参数(x,y)并返回一个CGIntegerPoint。

注意:将来,您可能会发现在Xcode中按命令单击类型会很有帮助。这样做会跳转到类型的定义,在这种情况下,也是它的实现。