2016-04-28 12 views
0

サウンドを再生するIBActionにいくつかのボタンがリンクされています。オンデマンドリソースタグに応じてボタンを有効/無効にします

-(IBAction)listen { 
// play the audio 
} 

私のファイルはOn Demand Resourcesで編成され、私は3個のタグがあります。

  • LEVEL1を
  • がLEVEL2
  • LEVEL3は、だから私が達成したいものです

ユーザーがレベル1にいる場合、彼はlevel1タグでのみファイルを再生できます。彼がlevel2タグのオーディオをクリックすると、警告が表示されます。

ファイルに特定のタグがあるかどうかを確認するにはどうすればよいですか?

+0

どの種類のファイルを参照していますか? –

+0

mp3ファイルです – fabersky

+0

タグ値をオブジェクトに設定することはできません。 UI要素のみにタグを付けることができます。 –

答えて

1

私はリソースのODRタグにアクセスするためのAPIを認識していないので、リソースをアプリケーションコードのアクセスコントロールにマップする別の方法を使用する必要があります。おそらく、pathForResource(_:ofType:)を使用してリソースのパスを調べ、それがディレクトリ "level2"にある場合は、ユーザーが適切なレベルに達するまでリソースにアクセスできないようにしますか?

+0

私は自分のプロジェクト内の別のフォルダにファイルを保存する必要がありますか? – fabersky

+0

それはそれを行う一つの方法です。このユースケースでは、どのタグが資産に割り当てられているかを知ることは便利だが、それはパッケージレベルの詳細です。 ODRの使用をやめ、アプリケーションですべてのリソースをパッケージングするとコードが壊れないようにするため、予期しない方法でタグ付けメカニズムをオーバーロードするのではなく、別のメカニズムに頼る方がよいでしょう。 – Palpatim

+0

レベル1のフォルダ、レベル2のフォルダ、レベル3のフォルダがある場合、どうすれば確認できますか? – fabersky