2012-03-21 3 views
-4

Это в UIViewController. Я хочу запустить reloadData на моем столе, но это не сработает.Почему я не могу запустить reloadData?

Во-первых, я звоню fromGenre: с другого взгляда. Я начинаю NSURLConnection. Затем он вызывает connectionDidFinishLoading:. Затем doParse:. После этого в этой функции я хочу позвонить reloadData. Но это не работает.

- (void)viewDidLoad{ 
[super viewDidLoad];  
} 

//Parse function 
-(void)doParse{ 
    NSString *jsonString = [[NSString alloc]initWithData:result encoding:NSUTF8StringEncoding]; 
    data2=[[[[jsonString JSONValue]] objectForKey:@"feed"] objectForKey:@"entry"]; 
    trackGenre = [[NSMutableArray alloc]init]; 
    for (NSDictionary *dic in data2) { 
     NSString *artistName = [[dic objectForKey:@"im:artist"]objectForKey:@"label"]; 
     NSMutableDictionary *dicData = [NSMutableDictionary dictionary]; 
     [dicData setValue:artistName forKey:@"artist"]; 
     [trackGenre addObject:dicData]; 
    } 
    **//[self.aTableView reloadData]; 
    /* 
    [ self.aTableView performSelectorOnMainThread:@selector(reloadTableView) 
             withObject:nil 
            waitUntilDone:YES 
    ];*/ 
    [self performSelectorOnMainThread:@selector(reloadTableView) withObject:nil waitUntilDone:YES]; 
    //[self reloadTableView];** 
} 

-(void)reloadTableView{ 
[[[self view] aTableView] reloadData]; 
NSLog(@"do reload"); 
} 


- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ 
//[self doParse]; 
[self performSelectorOnMainThread:@selector(doParse) withObject:nil waitUntilDone:YES];  
} 


-(void)fromGenre:(NSURLRequest *)urlRequest{ 
NSLog(@"urlRequest:%@",urlRequest); 
aConnection = [NSURLConnection connectionWithRequest:urlRequest delegate:self]; 
} 



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return trackGenre ? [trackGenre count]:100; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
static NSString *CellIdentifier = @"second_VC_Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    cell.textLabel.text = [[trackGenre objectAtIndex:indexPath.row]objectForKey:@"track"];   
return cell; 
} 

@end 
+2

Ваш вопрос действительно неясно ... Можете ли вы объяснить лучше, что ваш проблема есть? – Saphrosit

+0

Моя проблема в том, что мне нужно сделать, чтобы перезагрузить DataView. Это все. –

+0

Не должен ли 'reloadData' вызывать' self.aTableView', а не '[[self view] aTableView]'? Итак, '[self.aTableView reloadData]' – darvids0n

ответ

0

Вам следует попробовать использовать отладчик. [[self view] aTableView] кажется странным способом ссылаться на ваш вид в таблице. Если это свойство контроллера, вы должны использовать self.aTableView, и если это регулярная переменная экземпляра, вы должны просто использовать aTableView.

-(void)reloadTableView{ 
    [aTableView reloadData]; 
    NSLog(@"do reload"); 
} 
+0

Я описал неправильную команду. Я написал правильно [self.aTableView reloadData] или [aTableView reloadData] уже. Но это тоже не работает. –

0

так .. перезарядка называется .. то делать то, что Erik предложил и использовать отладчик :) госзакупки склонны не использовать его достаточно: P установить контрольную точку перед перезагрузкой и посмотреть на переменном:

ро GenreTrack

ро aTableView

ро aTableView.dataSource

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

  • Нет связанных вопросов^_^