Это хороший способ иметь переменные-члены уровня класса? - PullRequest
0 голосов
/ 23 июня 2011

Я пытаюсь немного нарушить законы цели 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 Ответ

2 голосов
/ 23 июня 2011

Да;это сработает, но будет полностью против любого общего шаблона.

Почему у вас просто нет стандартной пары сеттер / геттер?Даже на уровне класса это нормально:

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

Готово.

...