我有一个使用导航控制器和tableViews的应用程序,我想创建一个类来做一些简单的信息存储,这些信息在导航到不同的视图时保持持久,而不保存到磁盘。
我可以创建只有singleton
s的class method
,但在这种情况下我需要创建
将数据保存为instance variable
的集合类(因为@properties不适用于类方法)。我只看到在iOS中的属性中声明的对象,所以这是不受欢迎的吗?
该课程看起来像这样
头:
+ (BOOL) addObject: (id) object;
+ (BOOL) removeObject: (id) object;
+ (NSInteger) count;
私下我会有一个NSArray存储
NSArray *cache;
但这是完成任务的好方法吗?或者是否可以使用实例方法的非singelton类并在不同的表视图中使用该类的相同实例?如果是的话,我该怎么做?
答案 0 :(得分:0)
首先,所有readwrite属性自动合成实例变量(除非你实现BOTH setter AND getter)。
其次,如果该信息对整个(或大部分)应用程序来说是全局的,那么单身就是您所需要的。您不需要将其保留为属性(或ivar)。它是一个单身人士,它保留着自己的指针。
如果您仍想使用某个属性,则必须将其传递给应用程序中的每个VC(prepareForSegue:sender:
,如果您使用的是故事板)。
答案 1 :(得分:0)
首先找出您需要的全球信息。然后找出您已经拥有的具有与该全局信息一致的生命周期的对象,以及与该信息逻辑关联的对象。例如,如果您需要一个信息数组来“备份”UITableView,请将指向该数组的指针存储在表视图数据源实例中。
很少需要创建“单身”,并且拥有大量单身通常是编程不佳的标志。