iOS:用于在UITableView应用程序中存储的Singleton类

时间:2013-03-15 06:30:11

标签: ios objective-c singleton persistence

我有一个使用导航控制器和tableViews的应用程序,我想创建一个类来做一些简单的信息存储,这些信息在导航到不同的视图时保持持久,而不保存到磁盘。

我可以创建只有singleton s的class method,但在这种情况下我需要创建 将数据保存为instance variable的集合类(因为@properties不适用于类方法)。我只看到在iOS中的属性中声明的对象,所以这是不受欢迎的吗?

该课程看起来像这样

头:

+ (BOOL) addObject: (id) object;
+ (BOOL) removeObject: (id) object;
+ (NSInteger) count;

私下我会有一个NSArray存储

NSArray *cache;

但这是完成任务的好方法吗?或者是否可以使用实例方法的非singelton类并在不同的表视图中使用该类的相同实例?如果是的话,我该怎么做?

2 个答案:

答案 0 :(得分:0)

首先,所有readwrite属性自动合成实例变量(除非你实现BOTH setter AND getter)。

其次,如果该信息对整个(或大部分)应用程序来说是全局的,那么单身就是您所需要的。您不需要将其保留为属性(或ivar)。它是一个单身人士,它保留着自己的指针。

如果您仍想使用某个属性,则必须将其传递给应用程序中的每个VC(prepareForSegue:sender:,如果您使用的是故事板)。

答案 1 :(得分:0)

首先找出您需要的全球信息。然后找出您已经拥有的具有与该全局信息一致的生命周期的对象,以及与该信息逻辑关联的对象。例如,如果您需要一个信息数组来“备份”UITableView,请将指向该数组的指针存储在表视图数据源实例中。

很少需要创建“单身”,并且拥有大量单身通常是编程不佳的标志。