UITableView绑定到NSArray

时间:2011-02-07 04:24:10

标签: iphone cocoa-touch uitableview

我有UITableViewNSArray派生数据。在与UITableView相同的视图中,有一个UIDatePicker。当UIDatePicker中的日期发生变化时,我需要将提供数据的NSArray更新为UITableView并重新加载表格。

问题是我无法弄清楚如何在不崩溃我的应用程序的情况下更改NSArray。我认为tableview与NSArray绑定,如果我尝试释放它,那么这就是导致崩溃的原因。

以下是UIDatePicker更改日期时调用的方法:

- (IBAction)datesChanged {
    // Update the availableUnits NSArray
    if (availableUnits != nil) {
        [availableUnits release], availableUnits = nil;
    }
    availableUnits = [self availableUnitsForGivenTime];
    [self.tableView reloadData];
}

我在这里缺少什么?

2 个答案:

答案 0 :(得分:2)

使用NSMutableArray insted NSArray,每次更改日期时,首先从Array.Declare NSMutable数组中删除旧日期作为属性,并在ViewDidLoad.then中分配它。

- (IBAction)datesChanged {

    [self.availableUnits removeAllObjects];
    self.availableUnits = [[self availableUnitsForGivenTime] retain];
    [self.tableView reloadData];
}

以dealloc

发布数组

答案 1 :(得分:1)

在发布后,您似乎没有保留availableUnits。试试

availableUnits = [[self availableUnitsForGivenTime] retain];