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 で新しいアプローチが利用可能になる前の古いプラクティスを表しています。

.h ファイルに ivar を配置する必要がなくなりました。つまり、@private宣言は不要です。.h に含める必要があるのは、パブリック メソッドとパブリック プロパティの宣言だけです。他のすべては .m ファイルに入ります。

于 2013-02-18T18:37:01.010 に答える