2017-02-18 8 views
0

だから、私は見たことがありますが、私のコードには、stackoverflowで何を見たことに基づいて様々な無数の変更を試みましたが、実際のゲームプレイ中にオーディオが再生されようとしているときにチェックできるように、ユーザーのデフォルトデータに書き込むボリュームボタンを押したときにエラーが発生しています。インスタンスに送信された認識できないセレクタ0x37fe098c09830

私はすべてを試したので、これは私の問題だと思います。とにかく私のコードは以下の通りです:

//if user presses volume button 
@IBAction func DaVol(_ sender: Any) 
{ 
    //if User default for audio is nil, initialize it, otherwise change it where needed 
    if audioDefaultIsMuted.value(forKey: "Volume") != nil 
    { 
     //if the audio has been on turn it off 
     let tempAudioDefaultIsMuted = audioDefaultIsMuted.value(forKey: "Volume") as! Bool 
     if tempAudioDefaultIsMuted == false 
     { 
      //if label is the on music one, set value to true (meaning ismuted will be true) 
      //then change label to off label 
      audioDefaultIsMuted.set(true, forKey: "Volume") 
      audioDefaultIsMuted.synchronize() 

      //change to new image 
      volumectrl.setImage(#imageLiteral(resourceName: "nowaves"), for: UIControlState.normal) 
     } 
     else 
     { 
      //otherwise set value to false 
      //then change label to on one 
      audioDefaultIsMuted.set(true, forKey: "Volume") 
      audioDefaultIsMuted.synchronize() 

      //change to new image 
      volumectrl.setImage(#imageLiteral(resourceName: "audio"), for: UIControlState.normal) 
     } 
    } 
    let currVolImage = volumectrl.image(for: UIControlState.normal) 
    //check curr image and do same shit as before accordingly 
    if currVolImage == #imageLiteral(resourceName: "audio") 
    { 
     //if label is the on music one, set value to true (meaning ismuted will be true) 
     //then change label to off label 
     audioDefaultIsMuted.set(true, forKey: "Volume") 
     audioDefaultIsMuted.synchronize() 

     volumectrl.setImage(#imageLiteral(resourceName: "nowaves"), for: UIControlState.normal) 
    } 
    else if currVolImage == #imageLiteral(resourceName: "nowaves") 
    { 
     //otherwise set value to false 
     //then change label to on one 
     audioDefaultIsMuted.set(false, forKey: "Volume") 
     audioDefaultIsMuted.synchronize() 

     volumectrl.setImage(#imageLiteral(resourceName: "audio"), for: UIControlState.normal) 
    } 
} 
+2

に対応するボタンからドラッグすることで、再び上のすべてのアクション

  • Connectボタンアクションを削除してくださいあなたは問題を引き起こしている行を知らないようです。 Xcodeでは、左のブレークポイントパネルに行って、下の+ボタンを使用して新しい例外ブレークポイントを追加します。例外がスローされるときにこれをキャッチすると、問題の原因となっている行を確認することができます。 –

  • +1

    あなたはアクション接続のplaseを確認できます – Ram

    +2

    @instaケータリングあなたのストーリーボードが正しく接続されていることを確認して、同じボタンに1つ以上の接続がないことを確認してください。 –

    答えて

    1

    ここで、あなたはaudioDefaultIsMutedを取得し、その値を確認しました。それはあなたがメソッドにボタンアクションを接続していて、そのあとにメソッド名を変更したりする方法を削除したと書かれている可能性があり、この

    if let value = audioDefaultIsMuted.value(forKey: "Volume") { 
        print(value) 
    } 
    
    0

    のようなコードを簡素化する場合は、迅速レットを使用することができます

    と新しい方法を接続しました。

    this-

    1. は、(使用している場合)を右ストーリーボードのボタンをクリックして アクションメソッド
    関連する問題