我试图通过使用具有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调用它来设置一个新值。
答案 0 :(得分:2)
烨;这将起作用,但完全违背任何一种共同模式。
为什么不简单地使用标准的setter / getter对?即使在班级,也没关系:
static CGRect barf;
+ (CGRect) barf { return barf; }
+ (void) setBarf:(CGRect)aRect { barf = aRect; }
完成。