2012-02-08 81 views
-1

我正在制作一个ipad网络浏览器,当然我有一个历史记录。 UITableView运行良好,不起作用的是在历史数组中添加新字符串的方法,它不会给我任何错误。 下面的代码:为什么历史方法不起作用

.h 

NSMutableArray *HistoryArray; 

.m 

-(void)viewDidLoad{ 
HistoryArray = [[NSMutableArray alloc]init]; 
} 

-(void) addStringsToTheHistory{ 
    NSString *firstURL; 
    [firstURL isEqual: @"http://www.google.com"]; 
    NSString *currentURL; 
    [currentURL isEqual: field.text]; 
    [HistoryArray addObject: @"http://www.google.com"]; 
    if ([firstURL isEqual: currentURL]) { 
     [firstURL isEqual: @"something"]; 
     [TableView reloadData]; 
    }else{ 
     [HistoryArray addObject: currentURL ]; 
     [TableView reloadData]; 
    } 
} 

任何人有任何想法,为什么它不工作呢? HistoryArray是如何启动的?

+1

你为什么要做firstURL = @“something”; ? – Beuj 2012-02-08 15:37:46

+2

什么叫“addStringsToTheHistory” – ader 2012-02-08 15:56:52

+2

对于语义的正确性,除非它们实际上是'NSURL *'类型,否则不应该调用变量'firstURL'和'currentURL'。 – 2012-02-08 16:00:26

回答

2

isEqual:方法是一个对象等价测试,并返回一个BOOL值。该行:

NSString *firstURL; 
[firstURL isEqual: @"http://www.google.com"]; 
NSString *currentURL; 
[currentURL isEqual: field.text]; 

实际上不设置变量firstURLcurrentURL任何东西。

如果你想测试两个字符串之间的平等,你应该使用:

if ([firstURL isEqualToString:currentURL]) { 
} 

如果你还没有得到你所期望的结果 - 设置断点,或者使用NSLog功能检查你的变量的内容在你的viewDidLoadaddStringsToHistory方法中。

相关问题