0

selectedSongストーリーボードで別のViewControllerに切り替えると、文字列はその値を保持しません。私のビューコントローラーはすべてViewControllerクラスに接続されていますが。私はこのようにしました

最初のビュー:

- (IBAction)selectTheSong {
    selectedSong = @"test";
    NSLog(@"%@", selectedSong);
}

testそして、ログに値を返します。

2 番目のビュー:

    NSLog(@"%@", selectedSong);


if (audioPlayer == nil) {


NSString* soundPath =[[NSBundle mainBundle] pathForResource:selectedSong ofType:@"mp3"];
NSURL *soundURL = [NSURL fileURLWithPath:soundPath];


NSError *error = nil;

self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error];



[self.audioPlayer prepareToPlay];
}
[self.audioPlayer play];

今回(null)はログに返されます。

文字列が正しく設定されていませんか? プロパティなどにしてみましたがうまくいきませんでした。助けてください!ありがとう!

4

2 に答える 2

3

strongクラス インターフェイスで保持型のプロパティとして文字列を設定する必要があります。

例えば。

@property (nonatomic, strong) NSString *myString;

また、必ずselfキーワードを使用してその文字列インスタンスにアクセスし、合成されたアクセサー メソッドが確実に呼び出されるようにします。

すなわち

self.myString = @"Hello!";

それが役立つことを願っています!

于 2012-12-29T14:58:15.617 に答える
0

プロパティを使用する方法です。ある ViewController から別の ViewController に文字列の値をどのように渡しましたか? メソッドでそれを行う必要がありますprepareForSegue:

于 2012-12-29T14:52:27.877 に答える