在这里,问题无关紧要,但我对objectiveC不太了解。因此,查询的是我正在一个项目上,用户在该项目上点击Image并使用UITapGestureRecognizer,我必须将该轻拍的位置存储在array中。我不知道每次用户点击view并将CGPoint值存储在NSMutableArray中,这怎么可能。如果我知道,我将非常高兴。

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

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

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

最佳答案

您需要继承UIView并实现- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event方法以获得触摸回调。其次,不能将触摸位置(CGPoint)添加到NSMutableArray中,但是可以将其包装类(NSValue)添加到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];
}

如果以后要遍历这些触摸位置,则只需快速枚举数组并解开ojit_code即可。
for (NSValue *wrapper in someMutableArray) {
    CGPoint touchLocation = [wrapper CGPointValue];
}

关于ios - 如何使用for循环在NSMutableArray中添加对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25092121/

10-10 21:08