单身人士导致应用程序在更改视图控制器时崩溃
我正在尝试使用单例类来select基于用户所做的select显示的自定义内容。 它是这样的:显示一个列表,用户从列表中select一行,然后应用程序进入另一个ViewController视图。 所使用的ViewController对于所有列表选项都是相同的,但内容是不同的。 目前我设法做到这一点只有一个选项,并试图使用单身类告诉应用程序可以select哪些内容。
当select“莱佛士着陆点”选项时会发生这种情况:
if(landmarkSelected== @"Raffles Landing Site") { RafflesLandmarkInfo *rafflesLandmarkInfo = [[RafflesLandmarkInfo alloc] initWithNibName:@"RafflesLandmarkInfo" bundle:nil]; [self.navigationController pushViewController:rafflesLandmarkInfo animated:YES]; [rafflesLandmarkInfo release];
这将打开一个UIWebView实现,如下所示:
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"raffles" ofType:@"html"]isDirectory:NO]]];
我创build了一个单例类,如下所示: http : //www.galloway.me.uk/tutorials/singleton-classes/
我添加了一个NSMutableString属性,并将以前的代码更改为以下代码:
if(landmarkSelected== @"Raffles Landing Site") { LandmarkController* instance = [LandmarkController sharedInstance]; [instance.activeLandmark setString:@"raffles"]; RafflesLandmarkInfo *rafflesLandmarkInfo = [[RafflesLandmarkInfo alloc] initWithNibName:@"RafflesLandmarkInfo" bundle:nil]; [self.navigationController pushViewController:rafflesLandmarkInfo animated:YES]; [rafflesLandmarkInfo release];
和
if (instance.activeLandmark ==@"raffles"){ [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:instance.activeLandmark ofType:@"html"]isDirectory:NO]]]; }
但是当我从选项列表中select莱佛士登陆网站时,该应用程序崩溃。 罪魁祸首似乎是
[instance.activeLandmark setString:@"raffles"];
如何在第一个ViewController中设置activeLandmarkstring,这样当它加载第二个ViewController时,它会根据第一个ViewController中设置的值显示内容?
在你的单例中,activeLandmarkstring在被分配给它之前是被分配/初始化的吗?