想要创建一个只存在一次的容器类

时间:2010-10-19 10:58:50

标签: iphone objective-c

我想创建一个可以保存我的应用设置的课程。它非常基本。我将从几个不同的类中访问它,但只希望存在此容器类的1个版本,因此它们都看到相同的数据。

我需要为此标记一些特殊内容吗?

以下是我到目前为止所做的事情: Filters.h

#import <Foundation/Foundation.h>
@interface Filters : NSObject 
{
    NSString    *fuelType;
}
@property (nonatomic, copy) NSString *fuelType;
@end

Filters.m

#import "Filters.h"
@implementation Filters
@synthesize fuelType;
@end

当我分配这个类的实例时,是否需要使用一些标志,或者如果我需要从2个不同的类中访问fuelType值,我该如何处理?

由于 -code

3 个答案:

答案 0 :(得分:2)

对于全局应用程序设置,更好的方法是使用NSUserDefaults,或者如果要存储数据以供使用,则应使用核心数据和sqlite进行查找。

最后,如果您想要易于使用,可以使用核心数据样式应用委托类并使用以下方法获取它:

[[[UIApplication sharedApplication] delegate] myClass]这样你就可以拥有该版本的那个版本。

答案 1 :(得分:1)

你需要一个单身人士: 您可以自己创建单例或使用AppDelegate对象,该对象始终处于活动状态,并且在您的应用程序位于前台时永远不会释放(只需放置那里需要的变量并动态初始化它们)。

以下是有关如何创建单身人士的一些链接。 Cocoa fundamental Guide: Creating a Singleton  和 CocoaDev Singleton Pattern

答案 2 :(得分:0)

你要找的是一个单身人士。大多数人建议不要使用单身人士,因为它通常被认为是“肮脏的”。请参阅this apple doc中的“Singleton”以了解有关它的更多信息。