0

我读过私有变量应该标记为私有,否则它们会受到保护,并且被认为是最佳实践?有人可以为目标 C 解释这一点吗?我来自 C# 背景。

   // BAD

    @interface Test: NSObject
    {
        NSString* _name;
    }

    @property (nonatomic, retain) NSString* name;

    // GOOD

    @interface Test: NSObject
    {
        @private
        NSString* _name;
    }

    @property (nonatomic, retain) NSString* name;
4

1 回答 1

4

利用现代 Objective-C:

// Best
// .h file
@interface Test : NSObject

// public properties and methods declarations

@end

// .m file
@interface Test ()

// private properties declarations here

@end

@implementation Test {
    // private ivars here - if needed
}

// method implementations here

@end

您发布的示例代表了在新方法可用于现代 Objective-C 之前的旧实践。

不再需要将任何 ivars 放在 .h 文件中,这意味着声明没有用处@private。唯一应该在 .h 中的是公共方法和公共属性声明。其他所有内容都在 .m 文件中。

于 2013-02-18T18:37:01.010 回答