我的tableview没有重装?

时间:2013-02-10 07:33:11

标签: iphone ios ipad

我有一个应用程序,其中我使用nsmutablearray来控制表视图 我正以这种方式创建。

tableview = [[UITableView alloc] init];
    [tableview setFrame:CGRectMake(self.view.frame.origin.x,44,self.view.frame.size.width, self.view.frame.size.height)];
    tableview.dataSource = self;
    tableview.delegate = self;

    [self.view addSubview:tableview];
     self.tableview.rowHeight = 55;


    [tableview release];

.then i have an nsmutable array which is an instance array.when it is first loading everything seems to be working fine.i am storing that mutable array to the nsuserdefaults.from the second time onwords i am trying to load the data from the nsuserdefaults array like this.

NSUserDefaults *userslist = [NSUserDefaults standardUserDefaults];
        NSArray *arrayObj = [userslist objectForKey:@"userslist"]; 

        NSMutableArray *searchfriendarray1=[NSMutableArray arrayWithArray:arrayObj];
        searchfriendarray=searchfriendarray1;

.thats也正常工作。但在一个方法中,我正在尝试编辑该数组,然后尝试重新加载表,重新加载表不会被调用。

[sortedFriendsArray removeAllObjects];
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"userslist"];
   [[NSUserDefaults standardUserDefaults]synchronize ];
   NSDictionary *dictionary = [self.searchfriendarray objectAtIndex:index];
     [dictionary setValue:@"offline" forKey:@"TYPE"];  

    NSUserDefaults *userslist = [NSUserDefaults standardUserDefaults];

    [userslist setObject:searchfriendarray forKey:@"userslist"];

`在此之后,排序数组是从我的数组创建的。但是当我调用时 [self.tableview reloadData];它没有重装。有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

让您的tableview未更新的两个可能原因是

  • 您的dataSource数组未正确更新,因此在调用reloadData时检查数组的大小/内容

  • 如果您的dataSource已正确更新,可能是您在mainThread上调用reloadData。

    [tableView performSelectorOnMainThread:@selector(reloadData)withObject:nil waitUntilDone:NO];

答案 1 :(得分:0)

以下是一些要点:

  • 在头文件(.h)
  • 中声明您的表格视图
  • viewDidLoad方法中的Alloc-Init表视图
  • 以dealloc方法发布表格视图

为数据源数组更新做同样的事情,一旦数组得到更新,调用表视图重载数据方法:

[tableview reloadData];

注意:数据源数组=已在numberOfRows和cellForRowAtIndexPath方法中使用的数组。在调用重载数据方法之前,需要更新此数组。

希望这有助于你