溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS開發(fā)積累

發(fā)布時間:2020-06-17 16:05:58 來源:網(wǎng)絡(luò) 閱讀:560 作者:TinmKing 欄目:移動開發(fā)

【1】在不同的分辨率的設(shè)備中(iPhone4 320*480 iPhone4S 640*960 iPhone 5 960*1136),全屏顯示的圖片在某種模擬器中顯示全屏,但是在其它模擬器中會顯示空白。此種方法沒有在多種實(shí)際設(shè)備中檢測
以xCode4.5.2建立的ios6的默認(rèn)程序?yàn)槔?br />     ·    條件
    ⁃    默認(rèn)設(shè)置的view的Simulated Metrics項(xiàng)下的Size屬性為Retina 4 Full Screen
    ▪    問題描述
    ⁃    如果默認(rèn)的高度為1136的圖片尺寸在Retina 4-inch/ios6顯示正常,則在Retina 3.5-inch/ios6和其它尺寸下會出現(xiàn)空白。
    ▪    解決辦法
    ⁃    1.在xCode的屬性中修改成對應(yīng)的Simulated Metrics Size屬性,則會對應(yīng)的顯示正常。(如果App的設(shè)備不一致,則一樣會顯示空白)
    ⁃    2.在代碼中,在非iPhone5設(shè)備的情況下將高度進(jìn)行100個單位的調(diào)整。
    ▪    參考范例可以
    ⁃    參考HugeImageDemo3范例

【2】當(dāng)xCode中的App顯示為紅色的時候,需要檢查Bundle Identifier中的標(biāo)識是否與App ID中申請的一樣,再檢查App ID是否正確。有時候需要從菜單中選擇clean和build,如果還是顯示為紅色,則需要連接設(shè)備運(yùn)行一次


【3】獲取當(dāng)前窗口
    [[UIApplication sharedApplication] keyWindow]
    獲取當(dāng)前窗口視圖
    [UIApplication sharedApplication].keyWindow.rootViewController

【4】nil和release的作用:
 
nil就是把一個對象的指針置為空,只是切斷了指針與內(nèi)存中對象的聯(lián)系;而release才是真正通知內(nèi)存釋放這個對象,但是在IOS中其實(shí)也不會立馬釋 放內(nèi)存,而是將內(nèi)存計(jì)數(shù)器剪去1,直到計(jì)數(shù)器變?yōu)?,才會釋放掉內(nèi)存,所以release的目的是為了釋放內(nèi)存,而self.object = nil,是清空指針。
 
所以nil并沒有釋放內(nèi)存,只有release才回真正釋放內(nèi)存。
 
二者使用的先后順序:
 
如果沒有release就直接nil,那么雖然不會出錯,卻等于自己制造內(nèi)存泄漏了,因?yàn)閚il之后release就已經(jīng)不起作用了。
 
相反,如果在使用接口對象時只僅僅release沒有設(shè)置self.myOutlet = nil,那么程序可能也不會報(bào)錯,但卻會十分不穩(wěn)定、不健壯,很容易發(fā)生崩潰現(xiàn)象。
 
因?yàn)橐粋€接口對象在release之后,給它所分配等內(nèi)存就已經(jīng)被釋放了,如果釋放之后系統(tǒng)再用到這個對象,那么程序就會crash。
 
如果釋放之后把它的指針置為空,則即便后面的程序用到該對象,也不會崩潰。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI