2011-12-08 12 views
3
[PlaySound stop];   
[PlaySound prepareToPlay];   
[[NSUserDefaults standardUserDefaults] synchronize]; 
text = [[NSUserDefaults standardUserDefaults] stringForKey:@"defaulttext"]; 
NSLog(@"%@",text); 
BOOL loop = [prefs boolForKey:@"switch"]; 
NSLog(@" %d",loop); 
do { 
    [PlaySound play]; 
} while (loop ==YES); 

私はこのコードに直面している2つの大きな問題があります。AVAudioPlayerとNSUserDefaults

1)これは、ボタンをタップすると呼び出される関数です。この関数では、オーディオプレーヤーを割り当てています。この関数が呼び出されるたびに、私はオーディオプレーヤーでstop関数を呼び出しましたが、それは停止せず、2つのサウンドが同時に再生されます。

2)デフォルトが正しく登録されていません。文字列とboolの両方がコンソールにnilを表示しています。

私はアプリに設定バンドルを追加しました。

編集:メソッドの残り

NSUInteger selectedRow= [SoundPicker selectedRowInComponent:0]; 
NSString *userchoice =[self pickerView:SoundPicker titleForRow:selectedRow forComponent:0]; 
NSString *soundpath = [[NSBundle mainBundle] pathForResource:userchoice ofType:@"wav"]; 
NSURL *fileURl = [[NSURL alloc] initFileURLWithPath:soundpath]; 
NSError **error = nil; 
PlayFartSound = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURl error:error]; 

私はオーディオプレーヤーの問題をソートしています。 誰でもNSUserDefaultsに助けてもらえますか?私は識別子名name_preferenceでテキストフィールドを持っている私の設定ルートのplistで

ので、私はコードでこれを置く:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

text = [defaults stringForKey:@"name_preference"]; 
NSLog(@"%@ abc",text); 

をログが(null) abcのですか? [plistのデフォルト値をhelloに設定しました]

+0

残りの方法を教えてください。 – mattjgalloway

答えて

0

どのようにNSUserDefaultsのデフォルト値を設定していますか?あなたはplistのデフォルトを持っていると言いますが、そのplistをいつNSUserDefaultsにロードしますか?

「デフォルト」はデフォルト設定の辞書がある
[[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; 

は、おそらくPLISTからロードされたどこかapplicationDidFinishLaunchingのようで、理想的に、あなたはあなたのプログラムで早期にこのどこかを呼び出す必要があり、デフォルトのNSUserDefaultsの値を設定するには。