私はobjective-cに新しいです。他の人が書いたソースコードを読んでいるときに問題が発生しました。ココア - 同じ名前のIBOutletとプロパティがあるのはなぜですか?
私は、彼らが異なる変数だと思います
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
#import "TimerPopoverViewController.h"
@class TimerLogic;
@class TimerInfo;
@interface TimerPopoverDelegate : NSObject <NSPopoverDelegate> {
@private
IBOutlet NSPopover *popover;
IBOutlet NSWindow *detachWindow;
IBOutlet TimerPopoverViewController *viewController;
}
@property NSPopover *popover;
- (void)showPopover:(id)sender timerInfo:(TimerInfo *)timerInfo;
@end
PopoverViewController.h
IBOutlet NSPopover *popover;
など
@property NSPopover *popover;
があることがわかりました。しかし、私は彼らが何をしているのか理解できません。
私が関与する限り、IBOutlet
はポップオーバーを表示することです。 しかし、@property
は何をしていますか?
私は 'IBOutlet'が' @ private'に置かれていることに気付きました。それは重要ですか?私はObjCの新機能として、インスタンス変数によって裏付けされたプロパティを宣言することはあなたの答えに何を意味するのかをほとんど知ることができません。ヒントを教えてください。ありがとう! :) –
新しいObjC開発者として、私はそれについて心配しません。このようにインスタンス変数を宣言することは、もはや必要でも適切でもありません。現行の実践と、プロパティとivarsがどのように連携するかについては、https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.htmlを参照してください。 –