何时创建自定义数据源方法而不是设置变量

时间:2014-05-08 17:43:04

标签: ios objective-c cocoa

我有一个数据源数组,我希望将它提供给我的自定义控制器。我有两种方法可以做到这一点:

1)显而易见的方法是创建一个可以在类外部访问的属性数组,然后我只需通过控制器设置该属性就像这样

[customController setDataSourceArray:myServerArray];

2)创建数据源方法以及我使用签名创建的所有其他委托方法,如下所示:

-(NSMutableArray)arrayForCustomControllerDataSource{
    return myServerArray;
}

然后我用数据源方法中的返回数组设置私有属性数组

使用一种方法优于另一种方法有什么优势吗?这不只是方便还是看起来更好?

我假设您使用第二种方法可以更好地控制,然后您可以进行一些预配置,根据返回的数组重置控制器,但您可以通过更改setter属性/方法来执行相同的操作,并在其中添加额外的代码,那么真正的区别是什么?我应该在什么时候做?

1 个答案:

答案 0 :(得分:2)

标准做法,如UIKit的UITableViewDataSource protocol所示,是控制器(或UITableView视图)向数据源询问所需信息。

数据源通常也是控制器的属性。

@property (nonatomic, assign) id <CustomDataSource> dataSource;

所以当控制器需要数据时:

NSArray *myData = [self.dataSource customServerArray];