如何使用for循环在NSMutableArray中添加对象?

时间:2014-08-02 05:52:29

标签: ios objective-c nsmutablearray uitapgesturerecognizer

在这里,问题不过是我对objectiveC了解不多。因此,查询是我正在开发一个项目,用户点击图片,UITapGestureRecognizer我必须在我的array中存储该点击位置。我不知道每次用户点击viewCGPoint值时,如何将其存储在NSMutableArray中。如果我知道的话,我会非常高兴。

dataArray = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < [getResults count]; i++) {

[dataArray addObject:tappedPoint];
NSLog(@"RESULT TEST %@", dataArray);
}

我试过这段代码。但是在for循环的语法中,如何设置计数。还有一个问题是只存储最后一个对象。

1 个答案:

答案 0 :(得分:1)

您需要创建UIView的子类并实现方法- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event以获得触摸回调。其次,触摸位置(CGPoint)无法添加到NSMutableArray,但它的包装类可以(NSValue)。这将是你想要的非常基本的实现。

// in UIView subclass
// Precondition: you have an NSMutableArray named `someMutableArray'
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGPoint touchLocation = [[touches anyObject] locationInView:self];
    NSValue *wrapper = [NSValue valueWithCGPoint:touchLocation];

    [someMutableArray addObject:wrapper];
}

如果您想稍后循环浏览这些触摸位置,您只需快速枚举数组并打开NSValue

for (NSValue *wrapper in someMutableArray) {
    CGPoint touchLocation = [wrapper CGPointValue];
}