数组已正确填充,但当我尝试再次访问内容时,似乎再次为空!!试图根据需要发布尽可能多的代码。谢谢你的帮助。
我在.h文件中声明了appData:
@interface userViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
NSArray *appData;
IBOutlet UIActivityIndicatorView *activityIndicator;
IBOutlet UILabel *status;
IBOutlet UITableView *mainTable;
}
@property (nonatomic, retain) NSArray *appData;
@property (nonatomic, retain) UIActivityIndicatorView *activityIndicator;
@property (nonatomic, retain) UILabel *status;
@property (nonatomic, retain) UITableView *mainTable;
- (IBAction) refresca: (id)sender;
- (void)getData: (NSString *)usuari: (NSString *)clau;
@end
.m文件中的被合成并发布。当连接请求结束时,appData被正确填充,然后,当我重新加载tableview时,当执行numberOfRowsInSection时(同时循环也是为了测试),appData为空!
- (void)requestFinished:(ASIHTTPRequest *)request {
NSLog(@"%@", [request responseString]);
self.appData = [[request responseString] componentsSeparatedByString: @"#"];
int x =0;
while (x<[appData count] - 1)
{
NSLog(@"Aplicaciones = %@",[appData objectAtIndex: x]);
x = x+1;
}
[activityIndicator stopAnimating];
activityIndicator.hidden = YES;
status.hidden = YES;
mainTable.hidden = NO;
[mainTable reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if ([appData count] != 0)
{
NSLog(@"Counter = %@",[appData objectAtIndex:0]);
}
return [appData count]-1;
}
答案 0 :(得分:2)
这里有几件事。
如果appdata的计数非零,那么numberOfRows
中的测试记录将导致应用挂起。
您确定获得了appData
中填充的requestFinished
对象吗?
我建议使用numberOfRows中的访问器,如[self.appData count]
中那样,可能会解决问题。
你有没有从计数中减去一个特定原因?因为你将从tableView中的数组中丢失一个元素