【问题标题】:Storing CGPoints in NSMutableArray and Sqlite在 NSMutableArray 和 Sqlite 中存储 CGPoints
【发布时间】:2012-06-18 09:01:56
【问题描述】:

我想在调用 touchesMoved 时存储这些点。到目前为止,一切正常。但是我想做的是每次调用 touchesMoved 时创建一个“新”数组。例如,一旦触摸结束,点数组就会保存到标识符为 1 的数据库中。下次调用 touchesMoved 时,数组被清空并替换为具有不同标识符的另一组点。我尝试在每次调用 touchesEnded 时增加一个整数,但我发现每次触摸结束时整数都将保持不变。那么我将如何做到这一点?任何帮助将不胜感激。

更新: 例如,我的数组中有这个记录点:

100.000, 200.000
100.000, 202.000
100.000, 204.000

这些点将使用标识符保存在数据库中,比如 1。

1 | 100.000 | 200.000
1 | 100.000 | 202.000
1 | 100.000 | 204.000

现在,当触摸移动并再次结束时,新的记录点集将使用不同的标识符保存,比如 2。

2 | 200.000 | 300.000
2 | 200.000 | 302.000
2 | 200.000 | 304.000

所以基本上我想要发生的是每次调用 touchesMoved 时,它都会记录将保存在数组中的点。当触摸结束时,这些记录的点将与标识符一起保存。并且,一旦再次调用 touchesMoved 并结束,新的记录点集将使用不同的标识符保存。有什么想法吗?

【问题讨论】:

    标签: objective-c ios xcode nsmutablearray cgpoint


    【解决方案1】:

    要将CGPoint 存储在NSMutableArray 中,请执行此操作

    NSMutableArray *yourCGPointsArray = [[NSMutableArray alloc] init];
    [yourCGPointsArray addObject:[NSValue valueWithCGPoint:CGPointMake(100, 100)]];
    
    //Now getting the cgpoint back
    CGPoint point = [[yourCGPointsArray objectAtIndex:0] CGPointValue];
    

    【讨论】:

    • 是的,我已经这样做了。我想要发生的是,每次触摸结束时,所有记录的 CGPoints 都将使用单个标识符保存在数据库中。然后,一旦触摸移动并再次结束,记录的点将使用不同的标识符存储到数据库中。知道该怎么做吗?
    • 只要使用上面的方法,将创建的每个数组存储到一个 NSDictionary 中。 Dictionary 将存储所有数组,您可以使用 NSNumber 或 NSDate 来“识别”每个 NSArray。您可以获得 Dictionary 的最后一个对象并加一(假设您已使用 NSNumber 作为标识符 - 您只需将其转换为 NSInteger,然后递增并回退)。很多不同的方式来创建一个“标识符”。
    • 我的问题是数组没有“刷新”。我的意思是,每次调用 touchesMoved 时,我都希望数组清空并记录一组新的点。这就是“标识符”的目的,让我知道某个点数组与另一个点数组是分开的。我希望它是有道理的。
    • 好吧,只要 NSMutableDictionary (原始评论应该反映这一点)只包含一个对象,并在添加具有不同(或相同)的新对象 (NSArray) 之前删除对象 (NSArray) ) 标识符(密钥)。
    猜你喜欢
    • 2011-01-29
    • 2013-04-24
    • 1970-01-01
    • 2014-10-19
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多