Assets想必大家都使用過,今天聊幾個(gè)Assets比較方便的用法酪惭。 1.在工程中脏里,某個(gè)通用的顏色奏路,我們可能會(huì)用宏或者全局變量來表示霉囚,這樣可以方便大家的使用蝶念,但有一個(gè)弊端翰蠢,在...
Assets想必大家都使用過,今天聊幾個(gè)Assets比較方便的用法酪惭。 1.在工程中脏里,某個(gè)通用的顏色奏路,我們可能會(huì)用宏或者全局變量來表示霉囚,這樣可以方便大家的使用蝶念,但有一個(gè)弊端翰蠢,在...
改成$0即可。$1是取參數(shù)列表第2個(gè)參數(shù)的值服赎,$0才是取參數(shù)列表第1個(gè)參數(shù)的值葵蒂。
iOS 國際化開發(fā)** 原文發(fā)表在:https://www.xiaolei0808.com/2016/04/24/Localized-iOS/[https://www.xiaolei0808....
該文章屬于劉小壯原創(chuàng),轉(zhuǎn)載請(qǐng)注明:劉小壯[http://www.reibang.com/u/2de707c93dc4] 前段時(shí)間公司項(xiàng)目打算重構(gòu)重虑,準(zhǔn)確來說應(yīng)該是按之前的產(chǎn)品...
個(gè)人對(duì)iOS崩潰日志分析的使用記錄永高。 一隧土、無dsym文件:參考鏈接: https://www.cnblogs.com/ciml/p/7422872.html#commentf...
@歐陽大哥2013 太客氣了饲宛,下班??皆愉!
iOS的MVC框架之控制層的構(gòu)建(下)在我的iOS的MVC框架之控制層的構(gòu)建(上)一文中介紹了一些控制層的構(gòu)建方法,而這篇文章則繼續(xù)對(duì)一些方法進(jìn)行展開討論艇抠。MVC被眾多開發(fā)者所詬病的C層的膨脹幕庐,究其原因不外乎有如...
@單線程 我看到了,回復(fù)下家淤,哈哈异剥。文中寫的還是很清楚的:“上面的代碼可以看出我們單獨(dú)建立了一個(gè)擴(kuò)展來定義所有視圖屬性,并建立了一個(gè)分類并且重載loadView來實(shí)現(xiàn)視圖的建立和布局”絮重。一個(gè)拓展來為VC拓展所有視圖屬性冤寿,另外是在VC實(shí)現(xiàn)文件中添加了一個(gè)專業(yè)名稱“class-continuation”分類,其實(shí)理解為匿名分類就可以了绿鸣,然后在這個(gè)匿名分類去覆寫loadView方法疚沐。我已經(jīng)手動(dòng)實(shí)現(xiàn)了暂氯,可以訪問到_label的潮模。可能你拓展文件的創(chuàng)建方式不對(duì)痴施,可以查下怎么給已知類創(chuàng)建拓展文件擎厢。
iOS的MVC框架之控制層的構(gòu)建(下)在我的iOS的MVC框架之控制層的構(gòu)建(上)一文中介紹了一些控制層的構(gòu)建方法,而這篇文章則繼續(xù)對(duì)一些方法進(jìn)行展開討論辣吃。MVC被眾多開發(fā)者所詬病的C層的膨脹动遭,究其原因不外乎有如...
@歐陽大哥2013 我查資料是這樣說:在protocol中添加property時(shí),其實(shí)就是聲明了property的getter 和 setter 方法神得,在實(shí)現(xiàn)這個(gè)protocol協(xié)議的類中厘惦,我們要自己手動(dòng)添加實(shí)例變量,并且需要實(shí)現(xiàn)setter/getter方法哩簿。我的理解是:①正是這樣的protocol定義屬性的聲明方式宵蕉,才使得編譯期調(diào)用self.button不會(huì)報(bào)錯(cuò);②運(yùn)行期歸功于OC的運(yùn)行時(shí)機(jī)制节榜,由于找不到self.button走消息分發(fā)羡玛,在forwardingTargetForSelector方法中樓主將XXXXViewControllerView的實(shí)例(當(dāng)前的self.view)作為替代者,實(shí)現(xiàn)了轉(zhuǎn)移。補(bǔ)充了一點(diǎn)宗苍,請(qǐng)大哥幫忙看下我的理解是否正確稼稿?
此外我還沒發(fā)現(xiàn)@interface XXXXViewControllerView:UIView<XXXXViewControllerView>中遵從XXXXViewControllerView協(xié)議的必要性薄榛。XXXXViewControllerView視圖類的屬性定義和XXXXViewControllerView協(xié)議屬性定義是一模一樣的,但是XXXXViewControllerView視圖中系統(tǒng)幫我們自動(dòng)生產(chǎn)了對(duì)應(yīng)屬性的成員變量和其setter让歼、getter方法敞恋,XXXXViewControllerView協(xié)議并沒有。那么這里好像沒有遵循XXXXViewControllerView協(xié)議的意義谋右,亦或是這里想用該協(xié)議定義的屬性來校驗(yàn)視圖的屬性耳舅,但是似乎還是說不通。
還有上次我想問的問題倚评,就是視圖對(duì)象前添加IBOutlet關(guān)鍵字的用意在哪里浦徊,去除掉使用好像也沒有問題。
最后天梧,希望大哥閑暇的時(shí)候回復(fù)下盔性。有時(shí)候問的問題可能比較蠢,但是我想給出一個(gè)在這方面有所進(jìn)階的人一個(gè)個(gè)人的思路歷程呢岗,希望后來看到者能有所啟發(fā)冕香。謝謝大哥!??
iOS的MVC框架之控制層的構(gòu)建(下)在我的iOS的MVC框架之控制層的構(gòu)建(上)一文中介紹了一些控制層的構(gòu)建方法后豫,而這篇文章則繼續(xù)對(duì)一些方法進(jìn)行展開討論悉尾。MVC被眾多開發(fā)者所詬病的C層的膨脹,究其原因不外乎有如...
添加個(gè)回復(fù)挫酿,哈哈构眯!之前我有問過關(guān)于VM層(姑且稱作VM層吧)的問題,這里我當(dāng)時(shí)問過大哥早龟,如果使用APIService得到了報(bào)文信息和錯(cuò)誤信息回調(diào)惫霸,但是里面的報(bào)文信息不足以支持其直接展示到視圖上,需要較多的數(shù)據(jù)處理邏輯葱弟,是否可以添加一層VM壹店,以用來添加這些處理邏輯,并給出一個(gè)個(gè)readonly的屬性芝加,然后使用者用VM層的readonly屬性直接填充視圖硅卢;當(dāng)時(shí)沒有考慮在這個(gè)VM里再添加一個(gè)初始化更新方法,倒是有點(diǎn)2〔卣龋現(xiàn)在看到大哥“視圖的更新以及和數(shù)據(jù)模型的交互”第6種方法“建立中間綁定類”将塑,感覺很不錯(cuò),基本套路還是一樣的制市,不過多學(xué)了半招??抬旺。
iOS的MVC框架之控制層的構(gòu)建(下)在我的iOS的MVC框架之控制層的構(gòu)建(上)一文中介紹了一些控制層的構(gòu)建方法,而這篇文章則繼續(xù)對(duì)一些方法進(jìn)行展開討論祥楣。MVC被眾多開發(fā)者所詬病的C層的膨脹开财,究其原因不外乎有如...
大哥你好汉柒,我又回來了,感謝真干貨责鳍!關(guān)于文中“簡化控制器中的視圖構(gòu)建”的第二種方案“采用接口和消息轉(zhuǎn)發(fā)”已經(jīng)實(shí)踐是可行的碾褂;但第一種方案“采用分類擴(kuò)展的方法”提個(gè)問題:分類中添加屬性,我了解到的應(yīng)該需要使用到runtime中的關(guān)聯(lián)對(duì)象函數(shù)去做历葛。文中的寫法“_label = label”正塌,其實(shí)在分類中_label成員變量系統(tǒng)并未為我們自動(dòng)生成,如果手動(dòng)聲明變量恤溶,并用關(guān)聯(lián)對(duì)象函數(shù)添加了其set乓诽、get方法,成本是否太大咒程?如果不使用的話鸠天,有什么其他解決的方案或者我考慮欠缺的地方?還有個(gè)小問題帐姻,就是視圖對(duì)象前添加IBOutlet關(guān)鍵字的用意在哪里稠集,去除掉使用好像也沒有問題。
iOS的MVC框架之控制層的構(gòu)建(下)在我的iOS的MVC框架之控制層的構(gòu)建(上)一文中介紹了一些控制層的構(gòu)建方法饥瓷,而這篇文章則繼續(xù)對(duì)一些方法進(jìn)行展開討論剥纷。MVC被眾多開發(fā)者所詬病的C層的膨脹,究其原因不外乎有如...
@落影l(fā)oyinglin 是否釋放由引用計(jì)數(shù)決定,weakSelf不持有引用周偎,是不會(huì)影響釋放的抹剩,這句話是正確的,符合內(nèi)存管理機(jī)制蓉坎。這里不過我個(gè)人想說明個(gè)人的建議:這里block沒有和
self循環(huán)引用澳眷,不需要采取weakSelf的方式。其次weakSelf一般要和在block中采用__ strong LYButton *strongSelf = weakSelf(強(qiáng)引用蛉艾,引用計(jì)數(shù)+1)的方式聯(lián)合使用钳踊,以預(yù)防引用對(duì)象比如self可能為nil的風(fēng)險(xiǎn)衷敌,而strongSelf由于是block中的自由變量,所以會(huì)在block執(zhí)行完之前自動(dòng)釋放拓瞪,也就把之前強(qiáng)引用引起的引用計(jì)數(shù)+1抵消掉缴罗。所以在block中采用strongSelf而非weakSelf。還有祭埂,block雖然會(huì)強(qiáng)引用外部變量的瞬時(shí)值面氓,但當(dāng)weakSelf指向的對(duì)象被銷毀時(shí),那么為weakSelf也就指向nil蛆橡。這樣情況1舌界、block外只使用weakSelf,結(jié)果YES泰演;情況2禀横、block外使用weakSelf,內(nèi)部使用strongSelf粥血,結(jié)果NO柏锄;情況3、兩者都不用复亏,結(jié)果NO趾娃。
iOS面試題----實(shí)踐向前言 很多人都說熟悉UIKit,那對(duì)于常見的API是否熟悉缔御?多線程是前端經(jīng)久不衰的考點(diǎn)抬闷。大家對(duì)于Block的weak-strong dance都耳熟能詳,是否清楚知道每一個(gè)引...
CGAffineTransform介紹 概述 CGAffineTransform是一個(gè)用于處理形變的類,其可以改變控件的平移耕突、縮放笤成、旋轉(zhuǎn)等,其坐標(biāo)系統(tǒng)采用的是二維坐標(biāo)系,即向...
目錄 MVC概論【本文】 模型層設(shè)計(jì)方法【請(qǐng)參考:http://www.reibang.com/p/fce02188edec】 控制層的設(shè)計(jì)方法【請(qǐng)參考:https://ww...
作者你好,在此請(qǐng)教幾個(gè)問題眷茁。我在Service類中回調(diào)數(shù)據(jù)模型對(duì)象XXXModel(項(xiàng)目后臺(tái)多返回Json字典或本地存儲(chǔ)炕泳,未做邏輯處理)和Error。這里有2個(gè)小問題:第一個(gè)問題在本頁面使用的數(shù)據(jù)可能是XXXModel的一部分?jǐn)?shù)據(jù)的組合或者邏輯處理結(jié)果上祈,數(shù)據(jù)要給View使用培遵,要經(jīng)過比較多的“表示邏輯”來處理(如果沒什么“表示邏輯”處理,那么就直接在Controller里面?zhèn)鹘oView使用就好了)登刺。問題是這些“表示邏輯”是應(yīng)該在Service中繼續(xù)處理籽腕,然后賦值給Service類中的實(shí)例變量;還是再新建一個(gè)ViewModel類將“表示邏輯”處理纸俭,賦值給ViewModel類中的實(shí)例變量皇耗。最后將處理結(jié)果經(jīng)由Controller給View使用。第二個(gè)問題由于上述的Service類回調(diào)的數(shù)據(jù)模型對(duì)象XXXModel(未做邏輯處理)可能需要接下來使用或作為參數(shù)往下傳遞揍很,我們讓Controller郎楼、Service或ViewModel哪個(gè)類持有好點(diǎn)矾瘾,還是說有其他的考慮方案?
論MVVM偽框架結(jié)構(gòu)和MVC中M的實(shí)現(xiàn)機(jī)制目錄 MVC概論【本文】 模型層設(shè)計(jì)方法【請(qǐng)參考:http://www.reibang.com/p/fce02188edec】 控制層的設(shè)計(jì)方法【請(qǐng)參考:https://ww...