0

インターフェイスファイルに次のコードがあります。

#import <UIKit/UIKit.h>
#import <AddressBook/AddressBook.h>
@class FaxRecipient;

//Definition of the delegate's interface
@protocol AddLocalRecipientsTableViewControllerDelegate
-(void)getLocalRecipient:(FaxRecipient*)recipient;
@end

@interface AddLocalRecipientsTableViewController : UITableViewController {
    NSMutableArray *localRecipientItems;
    NSURLConnection *connectionInprogress;
    UIActivityIndicatorView *activityIndicator;
    NSIndexPath *lastIndexPath;
    FaxRecipient * faxRecipient;
}

@property(nonatomic,retain) NSIndexPath *lastIndexPath;
@property(nonatomic,retain)FaxRecipient * faxRecipient;
@property (nonatomic, assign) id<AddLocalRecipientsTableViewControllerDelegate> delegate;


-(void) loadLocalRecipients;

実装ファイルに次の行があります。

@synthesize delegate=_delegate;

アンダースコアを使用した合成とはどういう意味ですか?つまり、通常の合成が何をするかを知っています。すべてが正常に機能し、他のサイトでこのコード例を確認しました。

4

1 に答える 1

0

ほとんどの場合、プロパティにはバッキング変数があります。何

@synthesize delegate=_delegate;

検索バーのバッキング変数が_searchBarと呼ばれることを宣言します。これにより、プロパティの名前を変数の名前から切り離すことができます。実際、@ synthesizeを使用しない場合は、バッキング変数を用意する必要はまったくありません。

これは次のことができます:

  1. 変数名との衝突を避け、
  2. ローカル変数を使用している場合とインスタンス変数を使用している場合を明確にします。
于 2011-06-12T18:14:03.673 に答える