打算寫(xiě)好久了一直沒(méi)開(kāi)始捂寿,希望這是個(gè)良好的開(kāi)始口四。第一次寫(xiě)些簡(jiǎn)單的吧。
iOS開(kāi)發(fā)中字體大小
設(shè)計(jì)給的原型圖上字體全是以px為單位秦陋,換成iOS開(kāi)發(fā)中的font(pt):
pt=px/96 ?72
所以開(kāi)發(fā)中可使用宏:define FontSizeWithpx(px) px / 96 * 72
[self class],[self supClass],[super class],[super supClass]區(qū)別:
- 前兩者容易區(qū)分:對(duì)應(yīng)的分別為本類(lèi)和父類(lèi)
- 后兩者容易混淆:super為編譯指示器蔓彩,編譯器碰到super時(shí)會(huì)用本對(duì)象去調(diào)用其父類(lèi)中的該方法。所以[super class],[super supClass]輸出分別為本類(lèi)和父類(lèi)驳概;
用weak還是strong
-
為什么從xib或storyBoard拖線的UI控件屬性為weak赤嚼?
UI控件默認(rèn)用weak,根源是蘋(píng)果希望這樣這些UI控件的父View來(lái)強(qiáng)引用它們顺又,而viewController只需要強(qiáng)引用viewController.view成員更卒,則可間接的持有所有UI控件。這樣做的好處是:在以前稚照,當(dāng)系統(tǒng)收到Memory Waring時(shí)蹂空,會(huì)觸發(fā)ViewController的ViewDidUnload方法,這樣的弱引用可以讓整個(gè)View整體得到釋放果录,也更方便沖重建時(shí)整體重新構(gòu)造
-
自己代碼寫(xiě)用weak還是strong上枕?
UI控件用weak還是strong都可以。當(dāng)UI控件是weak時(shí)弱恒,它的引用計(jì)數(shù)是1姿骏,持有它的是它的superView,當(dāng)UI是strong時(shí)斤彼,它的引用計(jì)數(shù)是2,持有它的一個(gè)是superView一個(gè)是strong指針蘸泻。但UI控件不會(huì)持有別的對(duì)象琉苇,所以什么情況下用strong都沒(méi)問(wèn)題。自己寫(xiě)的view成員悦施,最好用strong并扇,因?yàn)橛脀eak會(huì)有額外的系統(tǒng)維護(hù)開(kāi)銷(xiāo)。另外還得注意在賦值前要添加到父view上抡诞,否則會(huì)提前釋放穷蛹。
block傳遞變量(值傳遞或指針傳遞)
int a=3;
NSString *str=@“LZ";
void(^block)()=^{
NSLog(@"%d",a);
NSLog(@"%@",str);
};
a=5;
str=@“NN";
block();
打印結(jié)果為:3土陪,LZ。
__block int a=3;
static NSString *str=@"LZ”;
void(^block)()=^{
NSLog(@"%d",a);
NSLog(@"%@",str);
};
a=5;
str=@“NN";
block();
打印結(jié)果為:5肴熏,NN鬼雀。
總結(jié):
如果是局部變量,block是值傳遞蛙吏;
如果是靜態(tài)變量或全局變量或__block源哩,block是指針傳遞
結(jié)語(yǔ)
第一次分享,希望多多指教鸦做。也希望自己能長(zhǎng)久堅(jiān)持下去励烦。