【问题标题】:App Crashes when touched触摸时应用程序崩溃
【发布时间】:2012-06-16 09:32:01
【问题描述】:

当我构建应用程序时,我会在 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];
    }

当我运行应用程序时,一切都开始正常,直到我单击播放器然后它关闭。谁能帮忙?

【问题讨论】:

    标签: iphone objective-c xcode ios-simulator


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你的意思可能是:

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

      或:

      UITouch *myTouch = [touches anyObject];
      

      【讨论】:

        【解决方案3】:

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

        就像把一个方形钉子放在一个圆孔里。

        【讨论】:

          猜你喜欢
          • 2021-08-03
          • 1970-01-01
          • 2016-07-26
          • 1970-01-01
          • 2021-06-12
          • 2022-01-14
          • 2013-01-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多