iPhone開發(fā)應(yīng)用點(diǎn)滴學(xué)習(xí)
iPhone開發(fā)點(diǎn)滴是本文要介紹的內(nèi)容,主要介紹的是iphone開發(fā)中常用的一些小實(shí)例,在這作為一個(gè)小備忘來學(xué)習(xí)。先來看詳細(xì)內(nèi)容。
iPhone中圖片的拉伸/圓角處理(Image round corner, aspect fit)
圖片圓角 image round corner:
- m_mainImgView.layer.cornerRadius = 6;
- m_mainImgView.layer.masksToBounds = YES;
自動(dòng)適應(yīng),保持圖片寬高比 aspect fit:
- m_mainImgView.contentMode = UIViewContentModeScaleAspectFit;
圖片拉伸 iphone
- UIImage *btnImage = [UIImage imageNamed:@"btn_normal"];
- CGFloat capWidth = btnImage.size.width / 2;
- CGFloat capHeight = btnImage.size.height / 2;
- btnImage = [btnImage stretchableImageWithLeftCapWidth:capWidth topCapHeight:capHeight];
類型轉(zhuǎn)換將NSString 轉(zhuǎn) NSdata
- NSString* str= @"teststring";NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
由init、loadView、viewDidLoad、viewDidUnload、dealloc的關(guān)系說起
init方法
在init方法中實(shí)例化必要的對象(遵從LazyLoad思想)
init方法中初始化ViewController本身
loadView方法
當(dāng)view需要被展示而它卻是nil時(shí),viewController會(huì)調(diào)用該方法。不要直接調(diào)用該方法。
如果手工維護(hù)views,必須重載重寫該方 法
如果使用IB維護(hù)views,必須不能重載重 寫該方法
loadView和IB構(gòu)建view
viewDidLoad方法
重載重寫該方法以進(jìn)一步定制view
在iPhone OS 3.0及之后的版本中,還應(yīng)該重載重寫viewDidUnload來釋放對view的任何索引
viewDidLoad后調(diào)用數(shù)據(jù)Model
viewDidUnload方法
當(dāng)系統(tǒng)內(nèi)存吃緊的時(shí)候會(huì)調(diào)用該方法(注:viewController沒有被dealloc)
內(nèi)存吃緊時(shí),在iPhone OS 3.0之前didReceiveMemoryWarning是釋放無用內(nèi)存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方式
在該方法中將所有IBOutlet(無論是property還是實(shí)例變量)置為nil(系統(tǒng)release view時(shí)已經(jīng)將其release掉了)
在該方法中釋放其他與view有關(guān)的對象、其他在運(yùn)行時(shí)創(chuàng)建(但非系統(tǒng)必須)的對象、在viewDidLoad中被創(chuàng)建的對象、緩存數(shù)據(jù)等
release對象后,將對象置為nil(IBOutlet只需要將其置為nil,系統(tǒng)release view時(shí)已經(jīng)將其release掉了)
一般認(rèn)為viewDidUnload是viewDidLoad的鏡像,因?yàn)楫?dāng)view被重新請求時(shí),viewDidLoad還會(huì)重新被執(zhí)行
viewDidUnload中被release的對象必須是很容易被重新創(chuàng)建的對象(比如在viewDidLoad或其他方法中創(chuàng)建的對象),不要release用戶數(shù)據(jù)或其他很難被重新創(chuàng)建的對象
dealloc方法
viewDidUnload和dealloc方法沒有關(guān)聯(lián),dealloc還是繼續(xù)做它該做的事情
舉例: lyttzx.com
- - (void)viewDidUnload { lyttzx.com
- self.startButton = nil;
- [setupViewController release];
- setupViewController = nil;
- } copyright lyttzx.com
- - (void)dealloc {
- [startButton release]; copyright lyttzx.com
- [setupViewController release]; 泠云工作室
- [super dealloc];
- }
- [super dealloc];
- }
默認(rèn)release view的方法是didReceiveMemoryWarning,這個(gè)方法會(huì)檢測能否安全的release這個(gè)控制器的view,如果可以安全 release view的時(shí)候,releae之,然后才會(huì)去調(diào)用viewDidUnload。
如果當(dāng)前顯示的控制器收到了memory warning,調(diào)用didReceiveMemoryWarning,但這時(shí)并不能release 當(dāng)前控制器的view,所以就不會(huì)調(diào)用viewDidUnload了。
小結(jié):iPhone應(yīng)用開發(fā)點(diǎn)滴學(xué)習(xí)的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)對你有所幫助,你也可以作為備忘去學(xué)習(xí)!