这是获得类级别成员变量的好方法吗?

时间:2011-06-23 02:21:47

标签: objective-c static class-design

我试图通过使用具有setter和getter的静态(类级别)变量来违反目标C的规则:

+(CGRect*)defaultOpFr:(CGRect*)set{
    static CGRect * defaultOpFr = nil;

    if (set) {
        if (!defaultOpFr) {
            defaultOpFr = malloc(sizeof(defaultOpFr));
        }
        defaultOpFr->size.width = set->size.width;
        defaultOpFr->size.height = set->size.height;
        defaultOpFr->origin.x = set->origin.x;
        defaultOpFr->origin.y = set->origin.y;
    }
    return defaultOpFr;
}

它似乎有效,但我想知道是否有更好的方法。我的想法是用nil调用它来检索值,用CGRect调用它来设置一个新值。

1 个答案:

答案 0 :(得分:2)

烨;这将起作用,但完全违背任何一种共同模式。

为什么不简单地使用标准的setter / getter对?即使在班级,也没关系:

static CGRect barf;
+ (CGRect) barf { return barf; }
+ (void) setBarf:(CGRect)aRect { barf = aRect; }

完成。