私はUIViewController - MasterViewController
のスーパークラスを持っており、itemsViewController
というプロパティが宣言されています。これは、MasterViewControllerから呼び出されたメソッドを宣言し、IBのストーリーボードを介して配線されます。スーパークラスのオーバーライドされたプロパティ
私はこのプロパティを特定のiPadバージョンとして再宣言するMasterViewControllerのサブクラスを持っていますが、親クラスから再宣言されたプロパティにアクセスすることはできません。
MasterViewController
@interface MasterViewController : UIViewController {
}
@property (nonatomic, strong) IBOutlet ItemsViewController *itemsViewController;
@end
@implementation MasterViewController
@synthesize itemsViewController;
-(void)viewDidLoad {
// I can access itemsViewController in viewDidLoad.
}
@end
MasterViewController_iPad
@interface MasterViewController_iPad : MasterViewController {
IBOutlet ItemsViewController_iPad *_itemsViewController;
}
@property (nonatomic, strong) IBOutlet ItemsViewController_iPad *itemsViewController;
@end
@implementation MasterViewController_iPad
@synthesize itemsViewController = _itemsViewController;
-(void)viewDidLoad {
[super viewDidLoad];
// when I call super viewDidLoad, itemsViewController is nil, as though the property hasn't been overriden
// _itemsViewController is not nil in viewDidLoad.
}
@end
は、私はプロパティの継承は、Objective-Cで動作する方法を誤解ですか?
ない理想的なを参照してください、それ私は信じられます。 – Echilon