前言
iOS開發(fā)馬上四年了,之前疏于做積累,每天寫完業(yè)務(wù)就不想技術(shù)的事情了,導(dǎo)致在一次裸辭之后,半年之后才找到工作(當(dāng)然了大部分時間是在玩),在一次次面試中暴露的最大問題就是沒有積累沉淀,對底層了解不夠,所以導(dǎo)致工作能力與工作年限不相符,競爭力很差,加之年近三十,看不到未來,一度焦慮抑郁,想轉(zhuǎn)行,經(jīng)過家人的疏導(dǎo),朋友的建議,自己的捫心自問,是自己的不努力才導(dǎo)致現(xiàn)在的結(jié)果,所以痛定思痛,決定記錄新工作中遇到的大小問題,采取一周一記的方式,平時遇到的問題會先記錄在備忘錄,周末整理,也可以說這是我自己的周報。
1.self.xxx與_xxx的不同
2.聲明屬性@interface{xxx}與@ property的不同? 轉(zhuǎn)載自blog.csdn.net/shenjie12345678/article/details/39052659
看別人寫的代碼的時候,常常困惑于人家在聲明屬性時的寫法,總結(jié)出來有三中方式,不知道哪一種比較規(guī)范化,現(xiàn)在我把三種方式貼出來,然后再一一探討每個方式聲明屬性的區(qū)別。
方式一:直接在@interface中的大括號中聲明。
@interface MyTest : NSObject{
NSString *mystr;
}
方式二:在@interface中聲明,然后再在@property中聲明。
@interface MyTest : NSObject{
NSString *_mystr;
}
@property (strong, nonatomic) NSString *mystr;
隨后在.m文件中加入
@synthesize mystr = _myStr;
方式三:直接用@property聲明
@interface MyTest : NSObject{
}
@property (strong, nonatomic) NSString *mystr;
隨后在.m文件中加入@synthesize?mystr =?_myStr;
==========================我是分割線============================
首先來說一下方式一根方式三的區(qū)別,使用方式一聲明的成員變量是只能在自己類內(nèi)部使用的,而不能在類的外部使用,(就是通過 類名. 點的方式是顯示不出來的),方式三則相反,它可以在類的外部訪問,在類的內(nèi)部可以通過下劃線+變量名或者self.變量名的方式來訪問。
方式二的寫法是一種過時的聲明變量的方式,xcode在早期@systhesize沒有自動合成屬性器之前,需要手寫
getter與setter方法,下劃線從風(fēng)格上表明這是類的內(nèi)部變量,要是需要直接使用變量則需要使用get或者set的方式。
在XCode目前有了自動合成屬性器后,編譯器會自動幫我們生成一個以下劃線開頭的的實例變量,所以我們不必去同時聲明屬性與變量。 我們可以直接用@property的方式來聲明一個成員屬性,在.m文件中使不使用@systhesize都無所謂,xcode會自動幫你生成getter與setter.
3.組件化開發(fā)
新項目計劃采用組件化的方式開發(fā),因為一些模塊后期可能會以sdk的方式提供給用戶使用,所以我遇到的第一個問題就是,組件化開發(fā)是怎樣的(面試的時候leader也問過我對組件化開發(fā)的理解)。組件化開發(fā)我的理解就是把各個功能變成一個個積木,需要什么拿來什么拼接在一起,根據(jù)需求拼成一個完整的app,其他項目有相似功能,像第三方庫一樣直接引入使用。但是具體的實現(xiàn)還需要研究,很多細節(jié)還要弄明白,看了幾篇文章作為參考組件化方案的幾種實現(xiàn)?、iOS組件化開發(fā)實踐、iOS組件化