'set <nsobject>'没有名为'anyObject。'的成员。 - Xcode 6.3 </nsobject>

时间:2015-04-11 23:50:56

标签: ios xcode swift set nsobject

我正在检查是否已选择某个元素。

func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)
{
    // First, see if the game is in a paused state
    if !gamePaused
    {
        // Declare the touched symbol and its location on the screen
        let touch = touches.anyObject! as? UITouch
        let location = touch.locationInNode(symbolsLayer)

之前已经在Xcode 6.2中编译得很好但是有了6.3的更新,这行&#34;让touch = touches.anyObject!如? UITouch&#34;抛出错误:

&#39;设置&#39;没有名为&#39; anyObject&#39;

的成员

我已经阅读了许多类似的问题,但我似乎无法解决问题&#34;要使用该值,您需要先“解开”它。&#34;特别是因为答案似乎集中在通知上。

非常感谢你。 w ^

2 个答案:

答案 0 :(得分:22)

let touch =  touches.first as? UITouch

.first可以让您访问UITouch的第一个对象。

由于Xcode 6.3使用Swift(1.2)的更新版本,您需要将旧代码转换为Swift 1.2(编辑 - &gt;转换 - &gt;转换为最新的Swift)。

Swift 1.2,使用Set(Swift中的新内容)而不是使用NSSet(Objective-C中的旧版本)。因此,touchbegan函数也将其参数从NSSet更改为Set。

有关详细信息,请refer this

答案 1 :(得分:3)

这将检查symbolsLayer

中的多个触摸
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)
{
    // First, see if the game is in a paused state
    if !gamePaused
    {
        // Declare the touched symbol and its location on the screen
        for touch: AnyObject in touches {
            let location = (touch as! UITouch).locationInNode(symbolsLayer)
        }
    }
}