? ? ? ?現如今iPhone手機受到人們的熱捧,有的人甚至選擇賣(mài)腎也要攢錢(qián)入手一部蘋(píng)果手機。隨著(zhù)iPhone的粉絲越來(lái)越多,也讓越來(lái)越多的手機開(kāi)發(fā)人員開(kāi)始進(jìn)行IOSapp開(kāi)發(fā)工作。但是在進(jìn)行APP開(kāi)發(fā)的過(guò)程中,還是會(huì )遇到很多困難,下面我們來(lái)講下就使用ARC會(huì )有哪些問(wèn)題以及相關(guān)的解決方法做一個(gè)詳細分析。
一、IOS開(kāi)發(fā)者擔心使用ARC會(huì )帶來(lái)的問(wèn)題
1.原有的項目在非ARC環(huán)境下運行良好,擔心遷移成本或引入新的問(wèn)題。
2.擔心這個(gè)技術(shù)方案不靠譜。蘋(píng)果大多數時(shí)候的技術(shù)方案都是比較靠譜的,但也有一些開(kāi)發(fā)技術(shù)方案有很多坑,例如storyboard。
3.使用ARC需要了解ARC的一些細節,還需要引入_bridge等新的關(guān)鍵字,學(xué)習成本還是有的。
4.蘋(píng)果以前手工管理內存需要非常小心,稍微不注意應用程序就崩潰了。有過(guò)這段經(jīng)歷的IOS開(kāi)發(fā)老手,心里上還是覺(jué)得自己手工管理內存更踏實(shí)一些。
二、解決IOS?app開(kāi)發(fā)問(wèn)題的方法
1.確實(shí)有一些遷移成本,但蘋(píng)果在Xcode中專(zhuān)門(mén)集成了遷移工具,成本已經(jīng)非常小了。另外,為了兼容第三方的非ARC開(kāi)源庫,你也可以在工程中隨意使用編譯參數:-fno-objc-arc,這個(gè)參數允許對部分文件關(guān)閉ARC。
2.ARC是WWDC2011大會(huì )時(shí)提出的技術(shù),離現在已經(jīng)快2年了,而且蘋(píng)果現在將MacOS上的垃圾回收機制廢棄(Deprecated),采用ARC替代,無(wú)疑證明了ARC是成熟的了。
3.確實(shí)有學(xué)習成本。但是非常值得學(xué)習,能省不少開(kāi)發(fā)精力。
4.手工管理內存雖然踏實(shí),但是泄露很容易發(fā)生。IOSapp常常在開(kāi)發(fā)完成后,需要使用Instruments來(lái)檢測泄露。但用了ARC后,基本不會(huì )出現泄露了。
? ? ? ?不同的開(kāi)發(fā)者對使用ARC的看法是不一樣的,當你感受到它給你帶來(lái)好處的時(shí)候,你就離不開(kāi)它了。當然它也能讓你從繁瑣的內存管理代碼中解放出來(lái),不過(guò)如果不需要也可以將它關(guān)閉即可。