2012-02-08 5 views
-1

Я делаю веб-браузер ipad, где, конечно, у меня есть история. UITableView работает хорошо, что не работает, это метод добавления новых строк в массив history, и он не дает мне никакой ошибки. Вот код:Почему метод истории не работает

.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

+2

Что вызывает «addStringsToTheHistory» – ader

+2

Для семантической корректности вы не должны вызывать переменные 'firstURL' и' currentURL', если они не имеют типа 'NSURL *'. –

ответ

2

Метод isEqual: является критерием эквивалентности объектов и возвращает значение BOOL. Линии:

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

фактически не установить переменные firstURL и currentURL к чему-либо.

Если вы хотите проверить равенство между двумя строками, вы должны использовать:

if ([firstURL isEqualToString:currentURL]) { 
} 

Если вы все еще не получаете результат вы ожидаете - установить точки останова или использовать NSLog функции для проверки содержимого ваших переменных в ваших методах viewDidLoad и addStringsToHistory.

Смежные вопросы