objective-c – 在@implementation中添加ivars

前端之家收集整理的这篇文章主要介绍了objective-c – 在@implementation中添加ivars前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为了良好的封装,体面的Objective-C程序员将私有ivars放在主实现文件中声明的私有扩展中,如下所示:
// MyClass.m

@interface MyClass () {
    float value;
}
@end

@implementation MyClass
@end

但是最近,我发现一个更简单的隐藏私有ivars的方法:ivars可以在@implementation之后的{}块中声明,如下所示:

// MyClass.m

@implementation MyClass {
    float value;
}
@end

这是非常方便的,没有私人的方法,但只有私人ivar需要隐藏.

但是,我不知道它的语法有效性.任何人都可以使用某些规范参考来验证或使其无效吗?

解决方法

这是完全有效的,这里是苹果公司谈论的文件

> https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html#//apple_ref/doc/uid/TP40011210-CH5-SW6

我不会亲自使用它,因为我更喜欢类继承类的语法.

猜你在找的C&C++相关文章