0

当我在情节提要中切换到另一个 ViewController 时,该字符串selectedSong不会保持其值。即使我所有的视图控制器都连接到 ViewController 类。我已经这样做了

第一视角:

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

并在那里返回test日志中的值。

第二种观点:

    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以确保调用合成的访问器方法。

IE

self.myString = @"Hello!";

希望有帮助!

于 2012-12-29T14:58:15.617 回答
0

使用属性是要走的路。你是如何将字符串的值从一个 ViewController 传递到另一个的?你应该在prepareForSegue:方法中这样做。

于 2012-12-29T14:52:27.877 回答