在viewDidLoad或viewDidAppear中忽略IF语句

时间:2012-10-29 22:14:49

标签: objective-c if-statement conditional-statements

我是iOS用户,但我知道这很危险。那说我在我的智慧结束,我正在寻找一些指导。我正在处理使用iOS的大量设计问题,但我找到了一种以我想要的方式显示内容的方法,使用webView并在HTML页面中调用,为我提供所需的外观。

但是我需要让它动态调用不同的.html文件,具体取决于用户点击的内容。我发现的是当我跳过它跳过的代码时,我的if条件被完全忽略了。下面是代码。我也为viewDidAppear尝试了这个。结果相同。标题是一个NSString ...所以理论上我将字符串与字符串进行比较。

- (void)viewDidLoad
{

    if (Title == @"Acme") {
        NSString *path = [[NSBundle mainBundle]pathForResource:@"index"  ofType:@"html"];
        NSURL *url = [NSURL fileURLWithPath:path];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [webView loadRequest:request];
        [webView setScalesPageToFit:NO];

    } else if (Title == @"NotAcme"{
         NSString *path = [[NSBundle mainBundle]pathForResource:@"Page2"  ofType:@"html"];
        NSURL *url = [NSURL fileURLWithPath:path];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [webView loadRequest:request];
        [webView setScalesPageToFit:NO];
    }


    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

有什么想法吗? 提前谢谢!

杰里米

1 个答案:

答案 0 :(得分:2)

请勿使用==来比较NSString个实例;改为使用isEqualToString:

if ([Title isEqualToString:@"Acme"]) {
    NSString *path = [[NSBundle mainBundle]pathForResource:@"index"  ofType:@"html"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
    [webView setScalesPageToFit:NO];

} else if ([Title isEqualToString:@"NotAcme"]) {
    NSString *path = [[NSBundle mainBundle]pathForResource:@"Page2"  ofType:@"html"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
    [webView setScalesPageToFit:NO];
}