搞不懂的xib-3_filesowner

從nib文件,創(chuàng)建實(shí)例,并不是創(chuàng)建"一個(gè)"實(shí)例,而是方框中拖進(jìn)去的各個(gè)實(shí)例,這些實(shí)例有的是UIView類型,有的是UIControl類型,有的是UIViewController類型,有的是NSObject類型。

- (nullable NSArray *)loadNibNamed:(NSString *)name 
owner:(nullable id)owner 
options:(nullable NSDictionary *)options;

所用這些實(shí)例,隨著nib文件的解檔而被喚醒賦予鮮活的生命,保存到被nib文件加載函數(shù)的數(shù)組類型的返回值中。

An array containing the top-level objects in the nib file. The array does not contain references to the File’s Owner or any proxy objects; it contains only those objects that were instantiated when the nib file was unarchived. You should retain either the returned array or the objects it contains manually to prevent the nib file objects from being released prematurely.

1、IBFilesOwner不會(huì)分配內(nèi)存實(shí)例,IBFirstResponder不會(huì)分配內(nèi)存實(shí)例,通過(guò)owner關(guān)聯(lián),以后的連線既是對(duì)owner的動(dòng)態(tài)運(yùn)行是的綁定kvc設(shè)置成員、方法(即iboutlet,ibaction)。

2、非UIView/UIControl的類型,會(huì)分配內(nèi)存實(shí)例。可以通過(guò)連線,可以作為本nib文件內(nèi)任何其它實(shí)例的outlet、outletcollections
注意:External object并不會(huì)分配內(nèi)存實(shí)例。

3、UIView/UIControl類型,會(huì)分配內(nèi)存實(shí)例??梢赃B線,添加其它的iboutlet,也可以做IBFilesOwner的iboutlet

可以通過(guò)連線,成員屬性、成員方法
iboutlet
iboutlet collection
ibaction

上面的2,3,可以作為filesowner的outlet
上面的2可以作為filesowner的outlet,也可以作為3的customClass類的實(shí)例的outlet
上面的3的子views可以作為它的實(shí)例的outlet

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容