我在这里和其他地方看过无数的问题,不能为我的生活弄清楚我做错了什么。
我正在尝试将一个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方法中发生。
有谁知道我哪里出错了?提前致谢。
答案 0 :(得分:2)
我从未将数组分配到内存中并初始化它。我的观点没有被存储到数组中,因为没有数组存在。
答案 1 :(得分:1)
将CGPoint
添加到NSMutableArray
[ArrObj addObject:NSStringFromCGPoint(PointObj)];
从CGPoint
NSMutableArray
CGPoint pointObj2 = CGPointFromString([ArrObj objectAtIndex:index]);
这对你有帮助..
答案 2 :(得分:-1)
首先在内存中分配你的可变数组:
points = [[NSMutableArray alloc] init];
然后插入。