在NSMutableArray中存储和检索CGPoints

时间:2010-03-21 06:54:10

标签: iphone objective-c nsmutablearray nslog

我在这里和其他地方看过无数的问题,不能为我的生活弄清楚我做错了什么。

我正在尝试将一个CGPoints数组作为NSValues存储在一个名为points的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方法中发生。

有谁知道我哪里出错了?提前致谢。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

CGPoint添加到NSMutableArray

[ArrObj addObject:NSStringFromCGPoint(PointObj)];

CGPoint

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

这对你有帮助..

答案 2 :(得分:-1)

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

points = [[NSMutableArray alloc] init];

然后插入。