Tag: static

在objective-c中声明一个静态variables的地方?

我在Objective-C中做了一些关于静态variables的研究,我发现人们在不同的地方声明了静态variables,这让我感到非常困惑。 对于下面的代码,我可以把static NSUInteger counter; 执行之外? (在我的#import“xxx.h”之后) 我可以把static NSUInteger counter; 里面的初始化类的方法? 我可以把static NSUInteger counter; 成一个实例方法? 最重要的是,有什么区别,以及如何select申报? 谢谢! @implementation MyClass static NSUInteger counter; +(void)initialize { if (self == [MyClass class]) { counter = 0; } } @end

static const Vs extern const

我一直在我的头文件中使用静态常量,如下所示: static NSString * const myString = @"foo"; 但是已经读过,这不是“安全”或正确的做法。 显然,如果我想要从另一个类访问我的conststring,我应该在我的.h中声明string: extern NSString * const myString; 然后在我的.m文件中: NSString * const myString = @"foo"; 它是否正确? 如果是这样,什么原因不直接在我的.h文件中声明它是静态的? 它工作得很好,我也看不到任何“安全”问题。 这是一个常量,因此它不能从外部改变,而且它是我有意在类之外访问的东西。 我能想到的唯一的另一件事是隐藏string的价值?