在其他函数中使用+(void)initialize中的变量

时间:2014-02-25 01:52:20

标签: iphone objective-c initialization scope

所以我有以下initialize方法:

+(void)initialize 
{
    static BOOL init = NO 
    if init == NO
        {
            NSDictionary *dict = @{NSFontAttributeName......};
            init = YES;
        }
}

现在,我有一个方法 - drawer,需要dict

-(void) drawer:(CGRect)rect 
{
    [self.string drawInRect:CGRect........... withAttributes:dict];
}

当我拨打dict中的drawer时,Xcode会说 - “使用未声明的标识符dict。为什么会发生这种情况?有人可以帮助我吗?我怎么能得到这个?访问dict的方法?

1 个答案:

答案 0 :(得分:2)

如您所知,dict中的+(void)initialize是该函数的局部变量。因此,在-(void)drawer:中,您无法访问dict,因为它不在同一范围内。

如果要将dict用作可在任何地方访问的全局变量,请将其声明为函数范围。