touchesbegan / move / ends不使用xcode 6.3

时间:2015-04-10 03:36:09

标签: xcode swift

我遇到的问题与测试版6.3中列出的问题相同:Overriding method with selector 'touchesBegan:withEvent:' has incompatible type '(NSSet, UIEvent) -> ()'

但是那里列出的修补程序对我不起作用。我改变了这一行:

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {

到此:

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

我得到的错误是:“方法不会覆盖其超类中的任何方法”

是否有人知道上面列出的6.3 beta版修补程序是否真的与最终版本6.3一起使用?

4 个答案:

答案 0 :(得分:2)

正确的答案是 here。保持覆盖并将签名更改为此

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)

答案 1 :(得分:2)

所以我找到了自己问题的答案......这是由我在项目中定义的一个名为&#34; Set&#34;的课程引起的。 (这是来自Ray W关于制作糖果美眉游戏的教程)。无论如何,在Swift 1.2中,他们引入了自己的类叫做#34; Set&#34;它导致名称冲突问题。所以我只是重命名了旧的Set类,它开始工作了。 UGH!

答案 2 :(得分:1)

以下是touchesBegan的完整代码,访问UITouch对象时也有变化。

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
    super.touchesBegan(touches, withEvent: event);

    mouseSwiped = false

    let array = Array(touches)
    let touch = array[0] as! UITouch
    currentLocation = touch.locationInView(imgViewSignature)
    currentLocation.y += 0


}

答案 3 :(得分:0)

 def store_check_result(client, check, &callback)
    @logger.debug("storing check result", :check => check)
    @redis.sadd("result:#{client[:name]}", check[:name])
    result_key = "#{client[:name]}:#{check[:name]}"
    check_truncated = check.merge(:output => check[:output][0..256]) <-- THIS LINE
    @redis.set("result:#{result_key}", MultiJson.dump(check_truncated)) do
      history_key = "history:#{result_key}"
      @redis.rpush(history_key, check[:status]) do
        @redis.ltrim(history_key, -21, -1)
        callback.call
      end
    end
  end