數(shù)據(jù)解析相關(guān)
-
案例一
由UITextView創(chuàng)建的textView顯示后臺(tái)返回的數(shù)據(jù)如下圖所示:
解決方法:
//購(gòu)買須知 UITextView *vi = [[UITextView alloc]initWithFrame:CGRectMake(10, 44, SCREEN_WIDTH-20, SCREEN_HEIGHT/2)]; vi.userInteractionEnabled = NO; vi.scrollEnabled = NO; NSString *htmlStr = _model.product_activity; // 這里不直接由vi.text顯示內(nèi)容,而是通過(guò)以下方法轉(zhuǎn)換之后再由vi的attributedText屬性顯示html格式的內(nèi)容岗屏。 NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[htmlStr dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType}documentAttributes:nil error:nil]; vi.attributedText = attributedString;
之后運(yùn)行模擬器顯示結(jié)果如下:
2016年11月6日晚更新
控制器之間的跳轉(zhuǎn)相關(guān)
-
案例二
目前的需求是帆疟,點(diǎn)擊積分或者團(tuán)購(gòu)專區(qū)下面的具體的item蓄氧,然后跳轉(zhuǎn)頁(yè)面澎剥,但是具體跳到哪個(gè)頁(yè)面并不固定。
比如有時(shí)候有活動(dòng)了艇炎,就跳轉(zhuǎn)一個(gè)與活動(dòng)相關(guān)的H5頁(yè)面耸成,有時(shí)候又需要跳到某個(gè)原生的商品列表頁(yè)或者具體的商品詳情頁(yè)。
解決方法:
通過(guò)使用Dariel在杭州造的輪子DCURLRouter來(lái)暫時(shí)解決需求舌厨。具體自然是將輪子引入到項(xiàng)目中岂却,然后配置現(xiàn)成的plist文件。
之后在首頁(yè)控制器的跳轉(zhuǎn)方法里添加如下所示的代碼
最后再在跳轉(zhuǎn)的目標(biāo)控制器內(nèi)添加相應(yīng)的方法用來(lái)接收參數(shù)裙椭,如果沒(méi)有參數(shù)就不需要另行配置了躏哩。
效果如下所示:
實(shí)際應(yīng)用中,后端只需要把這個(gè)url傳給客戶端揉燃,客戶端根據(jù)這個(gè)url跳就可以了扫尺,完全不需要管跳到哪個(gè)頁(yè)面,前提當(dāng)然是得配置了相關(guān)的控制器炊汤。
這樣做的好處也是很明顯的:
1.跳轉(zhuǎn)方式靈活正驻,本地進(jìn)行簡(jiǎn)單邏輯處理弊攘,使用openURL來(lái)打開(kāi)對(duì)應(yīng)的控制器,而這個(gè)你想要打開(kāi)的URL Scheme是可以動(dòng)態(tài)的從服務(wù)器獲取的姑曙。這樣就很簡(jiǎn)單的實(shí)現(xiàn)了動(dòng)態(tài)跳轉(zhuǎn)襟交。
2.傳遞參數(shù)的方式與URL一致,只需要在URL里附加上對(duì)應(yīng)的參數(shù)即可伤靠。
當(dāng)然捣域,這樣做并不是非常美觀,本來(lái)代碼里都是通過(guò)push或者present進(jìn)行跳轉(zhuǎn)的宴合,突然穿插進(jìn)來(lái)這樣的跳轉(zhuǎn)方式焕梅,會(huì)讓代碼變得很亂又很突兀。小范圍的使用只能是解決當(dāng)務(wù)之急的問(wèn)題卦洽,如果整個(gè)項(xiàng)目都采用這種方式丘侠,那么會(huì)非常消耗常駐的內(nèi)存,所以最佳的方案就是對(duì)項(xiàng)目進(jìn)行拆分逐样,然后進(jìn)行組件化架構(gòu)蜗字,具體可以學(xué)習(xí)并參考Casa Taloyum大神的iOS應(yīng)用架構(gòu)談系列文章。
參考資料:
Dariel在杭州的DCURLRouter
另外再附上相關(guān)的學(xué)習(xí)與參考資料(gitHub上1000+stars的項(xiàng)目):
routable-ios
HHRouter
JLRoutes