iphone - String不保留其值

时间:2012-12-29 14:45:24

标签: ios string null syntax-error

当我在故事板中切换到另一个ViewController时,字符串selectedSong没有保留其值。即使我的所有viewcontroller都连接到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)

字符串设置不正确吗?我试过把它作为财产等但是没有用。 请帮忙!谢谢!

2 个答案:

答案 0 :(得分:3)

您需要在类界面中将字符串设置为具有strong保留类型的属性。

例如

@property (nonatomic, strong) NSString *myString;

此外,始终使用self关键字访问该字符串实例,以确保调用合成的访问器方法。

self.myString = @"Hello!";

希望有所帮助!

答案 1 :(得分:0)

使用房产是可行的方法。你是如何将字符串的值从一个ViewController传递给另一个的?您应该使用prepareForSegue:方法。