IBOutletほとんどの Cocoa プロジェクトは、非インスタンス変数のプレフィックスとしてアンダーバーを使用し、インスタンス変数にはプレフィックスを使用しませんIBOutlet。
インスタンス変数にアンダーバーを使用しない理由はIBOutlet、nib ファイルがロードされたときに、接続されたアウトレットのセッター メソッドがあれば、そのセッターが呼び出されるからです。  ただし、このメカニズムはKey-Value コーディングを使用しないため、名前の前にアンダーバーが付く IBOutlet ( eg _myField ) は、セッターがアウトレット ( eg )とまったく同じように命名されていない限り、設定されません。 set_myField:
また、次のようなプロパティを使用することは、インスタンス変数にアクセスすることと同じself.myPropではないことに注意してください。のようなブラケット表記を使用した場合と同様に、プロパティを使用するとメッセージが送信されます[self myProp]。すべてのプロパティが行うことは、ゲッターとセッターの両方を 1 行で指定するための簡潔な構文を提供し、それらの実装を合成できるようにすることです。メッセージディスパッチメカニズムを実際に短絡するわけではありません。インスタンス変数に直接アクセスしたいが、その前にプレフィックスを付けたい場合は、ポインターとしてself扱う必要があります。これは実際には C スタイルのフィールド アクセスです。selfself->myProp
最後に、Cocoa のコードを書くときは決してハンガリー語表記を使用しないでください。また、"f" や "m_" などの他の接頭辞は避けてください。他の Cocoa 開発者から疑いの目で見られる可能性があります。
一般に、 Apple Developer Connectionの Cocoaドキュメントのコーディング ガイドラインのアドバイスに従ってください。そうすれば、他の開発者があなたのコードを理解して理解できるようになります。また、あなたのコードは、ランタイム イントロスペクションを使用するすべての Cocoa 機能でうまく機能します。
私の慣例を使用すると、ウィンドウコントローラークラスは次のようになります。
// EmployeeWindowController.h
#import <AppKit/NSWindowController.h>
@interface EmployeeWindowController : NSWindowController {
@private
    // model object this window is presenting
    Employee *_employee;
    // outlets connected to views in the window
    IBOutlet NSTextField *nameField;
    IBOutlet NSTextField *titleField;
}
- (id)initWithEmployee:(Employee *)employee;
@property(readwrite, retain) Employee *employee;
@end
// EmployeeWindowController.m
#import "EmployeeWindowController.h"
@implementation EmployeeWindowController
@synthesize employee = _employee;
- (id)initWithEmployee:(Employee *)employee {
    if (self = [super initWithWindowNibName:@"Employee"]) {
        _employee = [employee retain];
    }
    return self;
}
- (void)dealloc {
    [_employee release];
    [super dealloc];
}
- (void)windowDidLoad {
    // populates the window's controls, not necessary if using bindings
    [nameField setStringValue:self.employee.name];
    [titleField setStringValue:self.employee.title];
}
@end
Employeeを直接参照するインスタンス変数を-initand-deallocメソッドで使用し、プロパティを他のメソッドで使用していることがわかります。これは通常、プロパティの良いパターンです。初期化子、-dealloc、およびプロパティの getter と setter で、プロパティの基になるインスタンス変数に触れるだけです。