我如何申报课程

也许这是显而易见的,但我不知道如何在Objective-C中声明类属性。

我需要缓存每个类的字典,并想知道如何把它放在课堂上。


属性在Objective-C中有特定的含义,但我认为你的意思是等同于静态变量的东西? 例如,所有类型的Foo只有一个实例?

要在Objective-C中声明类的函数,你需要使用+前缀而不是 - 所以你的实现看起来像这样:

// Foo.h
@interface Foo {
}

+ (NSDictionary *)dictionary;

// Foo.m
+ (NSDictionary *)dictionary {
  static NSDictionary *fooDict = nil;
  if (fooDict == nil) {
    // create dict
  }
  return fooDict;
}

我正在使用这个解决方案:

@interface Model
+ (int) value;
+ (void) setValue:(int)val;
@end

@implementation Model
static int value;
+ (int) value
{ @synchronized(self) { return value; } }
+ (void) setValue:(int)val
{ @synchronized(self) { value = val; } }
@end

我发现它作为Singleton模式的替代品非常有用。

要使用它,只需使用点符号访问您的数据:

Model.value = 1;
NSLog(@"%d = value", Model.value);

如果你正在寻找类似的@property ,那么答案是“没有这样的事情”。 但请记住, @property只是语法糖,无论如何; 它只是创建适当命名的对象方法。

你想创建访问静态变量的类方法,正如其他人所说的那样,它们只有一个稍微不同的语法。

链接地址: http://www.djcxy.com/p/78787.html

上一篇: How do I declare class

下一篇: Class with single method