【问题标题】:Is is possible to define a class property in Objective-C? [duplicate]是否可以在 Objective-C 中定义类属性? [复制]
【发布时间】:2009-10-27 18:55:23
【问题描述】:

要声明实例属性,您可以使用类似于以下的声明:

@property (readonly) int size;

稍后可以使用点语法访问该属性:

NSLog(@"The object has a size of: %d", objectInstance.size);

但是,我想声明一个类属性,这样即使没有实例,我也可以通过这种方式访问​​它。例如:

NSLog(@"%d instances have been created.", ClassName.numberOfInstances);

我知道我总是可以使用类消息实现此行为并使用点语法调用它,但我更喜欢声明属性,并且会受益于某些属性的 @synthesize 指令。

这可能吗?

【问题讨论】:

    标签: objective-c properties


    【解决方案1】:

    简短的回答是,不,你不能。编译器不会让你这样做。你可以看到,当 Apple 必须做一些类似的事情时(比如 UIView 隐式动画参数),他们使用符合 KVC 的命名方式,而不是将它们声明为属性。

    更长的答案是类是对象,实际上我可以设想一些非常怪诞的黑客行为,这些黑客行为涉及代理重定向,可以让你这样做,但我确实不建议这样做。

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 2016-04-13
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多