我可以使用类方法来设置静态变量吗?

时间:2011-12-08 14:17:04

标签: objective-c

我没有足够的C知识来解决这里正确的事情。

我有大量的NSManagedObjects,与我目前正在工作的级别相比只有一步 - 我的视图控制器正在显示父对象的表格,每个对象的详细指示器显示的数量儿童对象。

用户可以创建一组存储在NSDictionary中的过滤条件。我的子对象具有一组复杂的计算,它们根据这些标准执行,以确定它们是否通过过滤器。这由一个简单的只读布尔属性外部表示。

我想要做的是在子对象中有一个静态变量来保存过滤器设置字典,这样我就不必调用用户默认值或类似内容来获取每个子对象的过滤器设置。

在用户创建过滤器设置时,我没有任何指向子对象的特定指针,我真的不想创建一个获取请求只是为了得到一个 - 所以会像这个合适吗?

·H:

@interface Child : NSManagedObject
+(void)setFilterSettings:(NSDictionary*)newFilterSettings;
@end

的.m:

static NSDictionary *filterSettings;

@implementation Child

+(void)setFilterSettings:(NSDictionary*)newFilterSettings
{
    filterSettings = newFilterSettings;
}
@end

进行过滤器设置时:

[Child setFilterSettings:newFilterSettings];

假设这是有效的,那么在内存管理方面我需要做什么?我正在使用ARC。

1 个答案:

答案 0 :(得分:2)

上面的代码没有错。这是实现类变量的标准方法,在ObjC中不存在。

(旁注:我是ARC的忠实粉丝,每个人都应该尽快使用它,但是当我看到一个没有预定的制定者时,我仍然本能地抽搐......)