在uitableview中加载数据

时间:2011-04-18 07:52:05

标签: objective-c xcode

我正在开发一个基于视图的简单应用程序,其中包含两个按钮和一个解析rss feed的表视图。我在顶部有两个按钮,我从界面构建器添加了uitableview ...我添加了委托和数据表视图的源视图作为文件的所有者....解析过程在一个单独的文件中完成,我使用delgation接收解析的数据....每个东西工作正常,除了 [self.tableView reloadData] 这给出了一个错误,如果我要评论这个我没有得到数据加载在表视图中.......这个加载的解析数据工作正常,如果即时通讯创建一个基于导航的应用程序。但如果我是创建基于视图的应用程序并从界面构建器中逐步添加表视图会产生问题,请各位大家帮我解决....下面是代码..

@implementation FirstViewController

@synthesize items;

@synthesize items2;

- (void)viewDidLoad
 {
    [super viewDidLoad];


    [self loadData];


}

-(void)loadData

{

if (items==nil) 
    {

Parser1 *rssparser=[[Parser1 alloc]init];   

rssparser.delegate=self;

[UIApplication sharedApplication].networkActivityIndicatorVisible=YES;

[activityIndicator startAnimating];

[rssparser startRssFeed:@"http://api.flickr.com/services/feeds/photos_public.gne"];


        [rssparser release];
    }else
    {
        //[self.tableView reloadData];
    }
}
-(void)receiveFeeds:(NSArray *)theItems
{   
[UIApplication sharedApplication].networkActivityIndicatorVisible=NO;

[activityIndicator stopAnimating];

items=theItems;

NSLog(@"ha ha ha items:%@",items);
    //[self.tableView reloadData];
}

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


    return [items count];

}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 

reuseIdentifier:CellIdentifier] autorelease];

 }

    cell.textLabel.text=[[items objectAtIndex:indexPath.row]objectForKey:@"title"];
    cell.textLabel.text=@"hello";

cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;

   return cell;
}

1 个答案:

答案 0 :(得分:1)

尝试在环境设置中使用NSZombieEnabled = YES运行您的应用。也许你在某处有内存分配问题。

我有根据的猜测是: 项= theItems;

您没有保留items数组,并且在使用它之前会自动释放它