I installed Xcode 8.0 beta (8S128d). Now I have some warnings with message:
Method possibly missing a [super awakeFromNib] call
in all awakeFromNib
methods.
In which case I need to call this method of superclass?
awakeFromNib gets called after the view and its subviews were allocated and initialized. It is guaranteed that the view will have all its outlet instance variables set.
Typically, you implement awakeFromNib for objects that require additional set up that cannot be done at design time. For example, you might use this method to customize the default configuration of any controls to match user preferences or the values in other controls.
As per Apple:
You must call the super implementation of awakeFromNib to give parent classes the opportunity to perform any additional initialization they require. Although the default implementation of this method does nothing, many UIKit classes provide non-empty implementations. You may call the super implementation at any point during your own awakeFromNib method.
Before Xcode 8, there was no strict compiler requirement for this , howeever Apple has changed this with Xcode8, and compiler treats it as error if call to [super awakeFromNib]
(or super.awakeFromNib()
in swift) is missing in awakeFromNib.
So Swift version would look something like this:
func awakeFromNib() {
super.awakeFromNib()
... your magical code ...
}
You're effectively overriding the method 'awakeFromNib' in your code. NSView or whatever your superview is also implements awakeFromNib -- you should call the super at the start of your implementation before you do any of your code to make sure that NSView can set itself up correctly beforehand.
- (void)awakeFromNib
{
[super awakeFromNib];
... your code ...
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With