1. 有沒有想過為什么字符串修飾一般都是用copy 而不是用strong 或者 assgin ? 這些他們有什么區(qū)別呢樱蛤?
? ? 比如: @property (nonatomic, strong/retain/assgin) NSString *strongString;
? ? ? ? ? ? ? ? @property (nonatomic, copy) NSString *copyedString;
將一個(gè)不可變的字符串 string? 分別賦值給他們 然后接著更改string 的值?
這時(shí)你會(huì)發(fā)現(xiàn).雖然更改了string 的值 ?但是 strongString. copyedString 的值沒有發(fā)生改變
然后你將一個(gè)可變的 string2? 分別賦值給他們 然后接著更改string 的值
這時(shí)你會(huì)發(fā)現(xiàn).雖然更改了string2 的值? .copyedString 的值沒有發(fā)生改變 但是 strongString 發(fā)生改變了 這是怎么回事呢蝠猬?
? 這是因?yàn)?你可以分別打印站刑。strongString 和? copyedString 的地址觀察, strongString 和? string2 他們指向的是同一個(gè)地址定嗓,代表的是同一個(gè)對(duì)象姐赡,你改變其中的任何一個(gè)值 扰肌,另一個(gè)會(huì)跟著發(fā)生變化厚柳, copyedString 這里做了一次深拷貝 ,棧里有一個(gè)新的指針指向堆里一個(gè)新的對(duì)象沐兵,所以你改變string2 的值? copyedString 也所以當(dāng)我們不希望 NSString * 修飾的對(duì)象始終不改變的話用copy 去修飾 如果想讓它改變可以用強(qiáng)引用strong/retain/assgin修飾
注意: 其實(shí)將 @property (nonatomic, strong) NSMutableString *strongString;
? ? ? ? ? ? ? ? ? ? ? ? @property (nonatomic, copy) NSMutableString *copyedString;
? ? ? ? ? ? ? ? ? ? ? ? ? 換成可變數(shù)據(jù)類型結(jié)構(gòu)是一樣的 可以試一下
2. ?什么時(shí)候用到layoutSubviews? setNeedsLayout 别垮?
? ? ? ? layoutSubviews? : layoutSubviews 是uiview 的屬性 只要是繼承uiview 都會(huì)有這個(gè)方法,layoutSubviews對(duì)Subviews 的重新布局扎谎,默認(rèn)是不做任何事情的碳想,當(dāng)我們想更新子試圖的位置的時(shí)候 通過layoutSubviews 這個(gè)方法? 可以實(shí)現(xiàn)對(duì)子試圖的重新布局? 那什么情況下會(huì)觸發(fā)layoutSubviews 呢?
? ? ? ?2.1? init 初始化的時(shí)候不會(huì)出發(fā) layoutSubviews
? ? ? ?2.2 addSubview? 會(huì)出發(fā)layoutSubviews?
? ? ? ?2.3 設(shè)置Frame 會(huì)出發(fā) layoutSubviews 前提 Frame 設(shè)置的前后值發(fā)生了變化
? ? ? ? 2.4 滾動(dòng)UIScrollView? 也會(huì)觸發(fā) layoutSubviews
? ? ? ? 2.5 旋轉(zhuǎn)screen 時(shí) 會(huì)觸發(fā)父視圖的layoutSubviews
? ? ? ? 2.6 改變uiview 的大小的時(shí)候也會(huì)觸發(fā)layoutSubviews
? ? ? ?建議: 只在layoutSubviews ?修改布局 不建議寫其他的
3.? awakeFromNib ?
在加載完xib 或者storyboard 之后會(huì)調(diào)用awakeFromNib 這個(gè)方法毁靶,那么你可以在這個(gè)方法里面去修改子試圖的布局
4. ? 招一個(gè)靠譜程序猿 面試題:
這是一個(gè)死鎖 只會(huì)打印? a ?打印完 a 程序就會(huì)crash?
這樣的話打印的是a b c
5. ViewControler 在沒有指向的時(shí)候 點(diǎn)擊pop 的時(shí)候會(huì)走delloc ? 方法 這個(gè)控制器會(huì)被釋放
6. 換一種風(fēng)格 采用markdown 的形式重新記錄筆記?
? ? 自己寫的一些筆記二 ?地址: http://www.reibang.com/p/17164140e071