【问题标题】:Storing and retrieving CGPoints inside NSMutableArray在 NSMutableArray 中存储和检索 CGPoints
【发布时间】:2011-01-29 23:39:45
【问题描述】:

我在这里和其他地方查看了无数问题,但终生无法弄清楚我做错了什么。

我正在尝试将一个 CGPoints 数组作为 NSValues 存储在一个 NSMutableArray 命名点中,就像在 iPhone 上这样:

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 方法中。

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

【问题讨论】:

  • 谢谢肯尼,这就是问题所在。

标签: iphone objective-c nsmutablearray nslog


【解决方案1】:

我从未将我的数组分配到内存中并对其进行初始化。我的积分没有存储到数组中,因为不存在数组。

【讨论】:

    【解决方案2】:

    用于将CGPoint 添加到NSMutableArray

    [ArrObj addObject:NSStringFromCGPoint(PointObj)];
    

    从NSMutableArray获取CGPoint

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

    这对你有帮助吗..

    【讨论】:

      【解决方案3】:

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

      points = [[NSMutableArray alloc] init];
      

      然后插入。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        • 1970-01-01
        • 2013-04-24
        • 2013-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多