应用程序在触摸时崩溃

时间:2012-06-16 09:32:01

标签: iphone objective-c xcode ios-simulator

当我构建应用程序时,我在UITouch行上收到警告

  

不兼容的Object-c初始化'struct NSArray *',期望'struct UITouch *'

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        UITouch *myTouch = [[event allTouches] allObjects];
        player.center = [myTouch locationInView:self.view];
    }

当我运行应用程序时,它一切正常,直到我点击播放器然后关闭。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

-allObjects方法返回您的触摸NSArray,如果您想从集合中获取单个对象,则需要使用-anyObject方法:

UITouch *myTouch = [[event allTouches] anyObject];

答案 1 :(得分:0)

可能你的意思是:

UITouch *myTouch = [[event allTouches] anyObject];

或:

UITouch *myTouch = [touches anyObject];

答案 2 :(得分:0)

您的变量myTouch是指向UITouch对象的指针。但是,如果您查看文档,您会发现allTouches的{​​{1}}返回UIEvent,而NSSet的{​​{1}}会返回allObjects 1}}。因此,您试图告诉计算机NSSet将传入NSArray个对象,而它几乎肯定会获得myTouch

就像在圆孔中放一个方形挂钉。