Explain awakeFromNib, initwithFrame usage

系统 1774 0

I am going through the Stanford iphone dev lectures on iTunes and ran into this in Lecture 5. We are trying to ensure a redraw will be done when the device rotates. I have two questions related to this:

  1. what is awakeFromNib, there's no call to this method in the rest of the code, how was it triggered?
  2. what does the codes inside initwithFrame do?

Thank you.

      -(
      
        void
      
      
        )setup 

{

    self.contentMode 
      
      =UIViewContentModeRedraw;
      
}
-( void )awakeFromNib {
  [self setup];
}

-( id )initWithFrame:(CGRect)frame { self =[super initWithFrame:frame];  
if (self){
    [self setup];
  }
  return self; }

 

awakeFromNib  is called by  NSBundle  when it finishes loading your nib. You've actually got two different code paths your code can take when initializing a view, depending on whether it's loaded from a nib or created at runtime. If it's loaded from a nib, part of the loading will initialize it by calling initWithCoder: , followed by a later call of  awakeFromNib  after all the outlets have been connected. If you create the view programmatically, you initialize it with  initWithFrame:  instead (and awakeFromNib  is never called because it wasn't loaded from a nib).

 

self is a pointer to the current object (it's implicitly defined for every non-static method). super lets you call the object's superclass's implementation of the current method. The  self = [super init...]  is a convention for how you invoke the superclass's initializer (since it can possibly return a different object). These are fundamental notions in Objective-C and object-oriented programming though, a fair bit beyond the scope of the original question.

    
      
         
      
    
  

Explain awakeFromNib, initwithFrame usage


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论