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:
- what is awakeFromNib, there's no call to this method in the rest of the code, how was it triggered?
- 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.
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
