2016-04-19 12 views
-1

次のコードは、Xcode 7.3にアップグレードする前に正しく機能しました。新しいXcode 7.3エラー - 「表示」の曖昧さ

FUNCをMyMethodは(){

  let tapGesture = UITapGestureRecognizer(target: self, action: #selector(CreateButtonObject.notifyButtonAction(_:))) 
      let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(CreateButtonObject.notifyButtonAction(_:))) 
      tapGesture.numberOfTapsRequired = 1 

}

@IBAction @objc func notifyButtonAction (sender: AnyObject) { 

    let userInfo:Dictionary<String,AnyObject!> 
    print("Sender from tap or longpress: \(sender)") 
    **let button = sender.view as! UIButton** 
    let soundName = button.currentTitle! 

    userInfo = ["sender" : sender] 

    NSNotificationCenter.defaultCenter().postNotificationName(sleepEZButtonActionNotificationKey, object: nil, userInfo: userInfo) 

    DDLogDebug("CreateButtonObject.notifyButtonAction: Notificaiton! ButtonViewController") 
    DDLogDebug("CreateButtonObject.notifyButtonAction: Posted Notification sleepEZButtonActionNotificationKey to initiate buttonAction") 
    DDLogDebug("CreateButtonObject.notifyButtonAction: Button Name: \(soundName)") 
    DDLogDebug("") 
} 

しかし、今、私はXcodeの7.3でこれを行うとき、私sender.viewとの行に次のエラーを取得します。 'view'のあいまいな使用

コンパイラエラーが続きます。

ここで何が起こっているか、どのように修正するかは誰でも知っています。これを理解できません。基本的には、作成されたUITapGesureRecognizerオブジェクトからUIButton属性を取得し、ボタン・プレスでアクティブ化する必要があります。立ち往生した。

事前のおかげで...宣言func notifyButtonAction (sender: AnyObject)

+1

ところで、@IBAction @ objcというフレーズは冗長です。 '@IBAction'は' @ objc'を意味します。 – matt

+0

7.3アップグレード以前は、 "@IBAction"のみを使用しましたが、コンパイルを試みるとエラーが発生しました。エラーが表示されたので、私は "@objc"を追加する必要がありました。エラーはこれ以上発生しません。エラーは#selectorを使用して前の構文とセレクタの使用を非推奨にした変更に起因します。 – zenmobi

答えて

2

は、あなたがANYOBJECTとしてsender入力しました。しかし、AnyObjectにはviewがありません。したがって、sender.view as! UIButtonの行には、sender.viewというフレーズは不正です。

タイプsenderをUIGestureRecognizerとして使用する場合は、func notifyButtonAction (sender: UIGestureRecognizer)です。ジェスチャ認識機能にはviewが含まれているため、すべて正常に動作します。

+0

が機能しましたありがとう! – zenmobi

+0

@zenmobi私に感謝する方法は私の答えを受け入れることです(チェックマーク)。 – matt

関連する問題