把反射屬性的用法說完。。。
IOS網絡請求大家應該很不陌生了把,但有時候我們需要向服務器傳遞的數據比較多,這個時候,也是我們runtime發揮的時候了。
直接上代碼,童鞋們估計快該罵人了。一個反射屬性,講這么久。。。
-(void)createPostDateWithDic{ NSArray * arr = [self.requestDictionary allKeys]; for (int i = 0; i < arr.count; i ++) { if ([self.requestDictionary objectForKey:[arr objectAtIndex:i]] != nil) { [self.mainRequest setPostValue:[self.requestDictionary objectForKey:[arr objectAtIndex:i]] forKey:[arr objectAtIndex:i]]; } };}-(void)createPostDateWithModel{ unsigned int outCount, i; objc_PRoperty_t *properties = class_copyPropertyList([self.requestModel class], &outCount); for (i=0; i<outCount; i++) { objc_property_t property = properties[i]; NSString * key = [[NSString alloc]initWithCString:property_getName(property) encoding:NSUTF8StringEncoding]; id value = [self.requestModel valueForKey:key]; if (value != nil) { [self.mainRequest setPostValue:value forKey:key]; } }}
上面是兩個方法都是自己封裝的POST網絡請求中使用的,基于ASI,這兩個方法的使用,會使得你的網絡請求的代碼實現,十分的簡介,高效。
好了童鞋們相信到了這里,你對runtime反射屬性的用法已經了解的差不多了,有問題,歡迎大家留言。多多提寶貴意見。
新聞熱點
疑難解答