亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

objective-c如何實現java中的反射機制

瀏覽:184日期:2024-04-12 13:25:38

問題描述

在開發iOS app時,經常會遇到服務端返回數據不完整的情況,比如缺少key,或者value為null的情況。

java中可以定義一個類,用反射的機制來進行數據初始化。

而objective-c中只能用nil和[NSNull null]來單獨判斷。來避免app crash。

整個view層也變得不夠純粹。

補充:我現在的做法是。如果返回的是一個數組。數組中每一項又是一個對象。我們假設對象中有的key或者value是缺失的。那么就要遍歷一邊,逐個遇到不完整的情況追加key或者默認值。這樣,在view層中,就不用再對key或value去做判斷了。代碼也專注在業務邏輯上。

問:有沒有更好的。更優雅的方式來實現。

問題解答

回答1:

沒太明白你的意思。。。Java的反射是可以動態獲取某個實例的方法和屬性列表,對于這種功能,Obj-c可以用 NSObject的 respondsToSelector: 方法來確認某個實例是否有某個方法;還可以用 performSelector: 來調用方法?;旧鲜强梢源鍶ava的反射。至于空返回值判空的問題,我目前還真就沒太好的辦法,我一般會定義一個方法,依次判斷 containsObject:,nil,[NSNull null],length或count。這個方法可以寫在一個util里也可以擴展一下寫在NSDictionary和NSArray里。

回答2:

objc的KVC機制和java的反射差不多。您google一下

比如@interface A : NSObject{NSString * name;}

你可以這樣拿到

A *a = [[A alloc] init];

NSString *name = [a objectForKey:@'name'];

不知道您是不是想這樣

你實現nscoding的接口。- (id)initWithCoder:(NSCoder *)aDecoder這個可以做你想做的事。不知道我理解對不對。

回答3:OC有個 JSONModel 的開源框架, 可以將Json轉成 ViewModel

空值問題可以在View層用到的時候判斷 或 在ViewModel構造的時候設置默認值

關于OC的反射,可以使用 NSClassFromString, NSSelectorFromString 等方法

標簽: java
相關文章:
主站蜘蛛池模板: www.久草| 国产成人久久精品区一区二区 | 国产短视频精品一区二区三区 | 成年人福利视频 | 国产精品高清视亚洲一区二区 | 精品中文字幕久久久久久 | 91无套极品外围在线播放 | 精品91| 一级特黄爽大片刺激 | 国产精品免费一区二区三区四区 | 92精品国产自产在线观看 | 91精品国产综合久久青草 | 玖草在线视频 | 97精品国产高清在线看入口 | 真正免费一级毛片在线播放 | 日日操夜夜爽 | www.av视频在线观看 | 东京一区二区三区高清视频 | 国产日韩精品一区在线不卡 | 欧美自拍网 | 中文字幕一区二区视频 | 久久国产午夜精品理论片34页 | 手机在线精品视频每日更新 | 波多野结衣3女同在线观看 波多野结衣aⅴ在线 | 91精品视品在线播放 | 欧美一级毛片欧美毛片视频 | 精品日韩一区二区三区 | 国产精品日本一区二区不卡视频 | 午夜爽爽爽男女免费观看hd | 久久成人视 | 国产女人伦码一区二区三区不卡 | 久久一区视频 | 永久免费毛片手机版在线看 | 成年午夜一级毛片视频 | 91aaa免费免费国产在线观看 | 一区二区三区免费视频网站 | 久久久这里只有精品加勒比 | 亚洲超大尺度激情啪啪人体 | 午夜成人免费影院 | 久久香蕉国产精品一区二区三 | 美女很黄很黄是免费的·无遮挡网站 |