相关疑难解决方法(0)

使用选择器'touchesBegan:withEvent:'的覆盖方法具有不兼容的类型'(NSSet,UIEvent) - >()'

Xcode 6.3.在实现UITextFieldDelegate协议的类中,我想重写touchesBegan()方法以隐藏键盘.如果我在函数规范中避免编译器错误,那么尝试从Set或NSSet读取"touch"时会出现编译错误,否则super.touchesBegan(touches,withEvent:event)会抛出错误.在Xcode 6.2中编译的这些组合之一!(那么Swift"Set"的文档在哪里以及如何从一个元素中获取元素?)

 override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 
    // Hiding the Keyboard when the User Taps the Background
        if let touch =  touches.anyObject() as? UITouch {
            if nameTF.isFirstResponder() && touch.view != nameTF {
                nameTF.resignFirstResponder();
            }
        }
        super.touchesBegan(touches , withEvent:event)
    }
Run Code Online (Sandbox Code Playgroud)

尝试:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) or
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent) 
Run Code Online (Sandbox Code Playgroud)

编译器错误:使用选择器'touchesBegan:withEvent:'的覆盖方法具有不兼容的类型'(NSSet,UIEvent) - >()'和

super.touchesBegan(touches , withEvent:event)
Run Code Online (Sandbox Code Playgroud)

还抱怨

'NSSet'不能隐式转换为'Set'; 你的意思是使用'as'来明确转换?

尝试:

override func touchesBegan(touches: Set<AnyObject>, withEvent event: UIEvent) 
Run Code Online (Sandbox Code Playgroud)

编译器错误:类型'AnyObject'不符合协议'Hashable'

尝试:

override func …
Run Code Online (Sandbox Code Playgroud)

overriding ios swift

76
推荐指数
5
解决办法
8万
查看次数

双击UIButton

如何识别UIButton的双重触摸?

objective-c ios

12
推荐指数
1
解决办法
1万
查看次数

'set'<NSObject>没有名为'anyObject'的成员

今天我用Swift 1.2更新了xcode我的代码在Swift 1.1上工作得很好但是当我更新时我得到了这个错误:

'Set'没有名为'anyObject'的成员

这是我的代码:

override public func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
    let location:CGPoint? = touches.anyObject()?.locationInView(self)
    if let loc = location {
        if (!CGRectContainsPoint(ScaleRect(self.bounds, n: 2.0), loc)) {
            self.highlighted = false
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

你们有一个想法,我该如何解决这个问题?

object member named swift

11
推荐指数
1
解决办法
7244
查看次数

Swift 2:'Set <UITouch>'类型的值没有成员'anyObject'

我检查了我的旧游戏,我想在Swift 2.0中更新它.当我试图修复它时,Xcode发现了一个错误.错误是类型'Set'的值在此代码行中没有成员'anyObject':

var touch:UITouch = touches.anyObject() as! UITouch
Run Code Online (Sandbox Code Playgroud)

功能:

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {

    self.runAction(SKAction.playSoundFileNamed("torpedo.mp3", waitForCompletion: false))

    var touch:UITouch = touches.anyObject() as! UITouch //<-- Here is Error
    var location:CGPoint = touch.locationInNode(self)

    var torpedo:SKSpriteNode = SKSpriteNode(imageNamed: "torpedo")
    torpedo.position = player.position

    torpedo.physicsBody = SKPhysicsBody(circleOfRadius: torpedo.size.width/2)
    torpedo.physicsBody!.dynamic = true
    torpedo.physicsBody!.categoryBitMask = photonTorpedoCategory
    torpedo.physicsBody!.contactTestBitMask = alienCategory
    torpedo.physicsBody!.collisionBitMask = 0
    torpedo.physicsBody!.usesPreciseCollisionDetection = true

    var offset:CGPoint = vecSub(location, b: torpedo.position)

    if (offset.y < 0){
        return

    self.addChild(torpedo)

    var direction:CGPoint = …
Run Code Online (Sandbox Code Playgroud)

uitouch sprite-kit skspritenode swift swift2

7
推荐指数
1
解决办法
4376
查看次数