在NSMutableArray中存储和检索CGPoints

4

我看过这里和其他地方无数个问题,但是就是想不明白我错在哪里。

我正在尝试将一个CGPoint数组存储为NSValue并放入NSMutableArray中,如下所示:

NSValue *point = [NSValue valueWithCGPoint:firstTouch];
NSLog(@"NSValue *point = %@", point);
[points addObject:point];

NSLOG OUTPUT
NSValue *point = NSPoint: {120, 221}

将CGPoint转换为NSValue时一切顺利。但是当我尝试检索该点时,什么也没有得到。

NSValue *getPoint = [points objectAtIndex:0];
CGPoint thePoint = [getPoint CGPointValue];
NSLog(@"Point = %@", NSStringFromCGPoint(thePoint));

NSLOG OUTPUT
Point = {0, 0}

这些点应该是相同的,但我得到了一个空结果。

为了测试目的,这是在touchesBegan方法中发生的。

有人知道我错在哪里吗?提前感谢。


谢谢Kenny,那就是问题所在。 - MattDice
3个回答

2
我从未将我的数组分配到内存中并初始化。因为没有存在的数组,所以我的点没有被存储在数组中。

1

用于将CGPoint添加到NSMutableArray

[ArrObj addObject:NSStringFromCGPoint(PointObj)];

从NSMutableArray中获取CGPoint
CGPoint pointObj2 = CGPointFromString([ArrObj objectAtIndex:index]);

希望这能帮到你。


-1

首先在内存中分配可变数组:

points = [[NSMutableArray alloc] init];

然后插入。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接