我有下面的函数验证另一个函数的返回(函数searchPlaces返回NSString).当我运行它时,似乎没有调用if子句,因为NSLog(@"函数返回:%@",nova url); 出现在控制台中.
有人能告诉我代码中是否有错误?(肯定有错!)
- (void) buttonPushRandomViewController1 {
    UIViewController *randomViewController = [self randomViewController3];
    NSString *novaurl = [self searchPlaces];
    NSLog(@"Function Return: %@",novaurl);
    if (novaurl == @"OK") {
        randomViewController.title = @"Resultado";
        [self.master pushViewController:randomViewController animated:YES];
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:novaurl]];
        [webView loadRequest:request];
    }else if (novaurl == @"ZERO_RESULTS") {
        UIAlertView *zeroResults = [[UIAlertView alloc] initWithTitle: @"Ops!" message: @"Sorry, nothing found!" 
                                                             delegate: self cancelButtonTitle: @"OK" otherButtonTitles: nil];
        [zeroResults show];
        [zeroResults release];
    }
}
提前致谢!
您不应该将NSStrings与==运算符进行比较.在==操作者进行参考平等于Objective-C的对象类型的:它仅在两个操作数指的是完全相同的对象返回true.即使两个字符串是彼此的副本,==如果它们引用不同的实例,也将返回false.
您希望使用值相等.您可以使用以下-isEqualToString:方法比较字符串:
if ([novaurl isEqualToString:@"OK"]) {
    ...
}
| 归档时间: | 
 | 
| 查看次数: | 128 次 | 
| 最近记录: |