tôi có một lớp con của NSViewController tải chế độ xem của nó từ một nib (với initWithNibName: bundle: và nó là chủ sở hữu của tệp của ngòi đó).Cách tốt nhất để thiết lập NSViewController được khởi tạo với initWithNibName: bundle :?
tôi cần phải làm một số khởi tạo sau khi ngòi bút được nạp và tôi muốn mã của tôi là tương thích nhất:
- Trong ios: Có phương pháp viewDidLoad để làm điều đó
- Trong OSX: Trong báo tuyết, không có phương pháp như viewDidLoad nhưng awakeFromNib đang kêu gọi chủ sở hữu của tập tin của ngòi quá
Vì vậy, câu hỏi của tôi là:
- AwakeFromNib có được gọi là chủ sở hữu tập tin của ngòi trong Lion không?
- Nếu tôi sử dụng awakeFromNib, tôi có cần gọi [super awakeFromNib] không? (là NSViewController thực hiện awakeFromNib?)
- Nếu câu trả lời 1 là CÓ, đây có phải là giải pháp tốt không? :
- (void)initAfterNibLoaded { ... } - (void)viewDidLoad { // Code for ios [self initAfterNibLoaded]; } - (void)awakeFromNib { // Code for osx // Not sure if necessary [super awakeFromNib]; [self initAfterNibLoaded]; }
Nếu câu trả lời là KHÔNG 1, đây là một giải pháp tốt? :
- (void)viewDidLoad {
// Initialize after nib loaded
}
#ifndef TARGET_OS_IPHONE
- (void)loadView {
// Call parent method
[super loadView];
// Simulate viewDidLoad method
[self viewDidLoad];
}
#endif
Cảm ơn bạn
Vì NSViewController không có trong UIKit, tôi không chắc tại sao bạn đang khái quát trên các nền tảng. –
Có nhưng tôi muốn thực hiện sửa đổi ít hơn trong mã nếu tôi cần chuyển nó sang ios. Thay đổi lớp cha mẹ từ NSViewController để UIViewController không phải là một việc lớn nhưng tôi thích tránh có rất nhiều lỗi vì một số phương pháp được gọi là trong ios và không phải trong osx hoặc ngược lại. – Johnmph
Câu trả lời rõ ràng là jQuery. –