要声明实例属性,您可以使用类似于此的声明:
@property (readonly) int size;
稍后可以使用点语法访问该属性:
NSLog(@"The object has a size of: %d", objectInstance.size);
但是,我想声明一个类属性,这样即使没有实例,我也可以这种方式访问它。例如:
NSLog(@"%d instances have been created.", ClassName.numberOfInstances);
我知道我总是可以使用类消息来实现这种行为,并且仍然使用点语法调用它,但我更喜欢使用声明的属性,并且可以从某些属性的@synthesize
指令中受益。
这可能吗?
答案 0 :(得分:3)
简短的回答是,不,你不能。编译器不允许你这样做。你可以看到,当Apple必须做类似的事情时(比如UIView隐式动画参数),他们使用符合KVC标准的命令,不要将它们声明为属性。
更长的答案是类是对象,我实际上可以设想一些非常奇怪的黑客,它们涉及代理重定向,让你这样做,但它确实不是我建议做的事情。