当我构建应用程序时,我在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];
}
当我运行应用程序时,它一切正常,直到我点击播放器然后关闭。有人可以帮忙吗?
答案 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
。
就像在圆孔中放一个方形挂钉。