无论是在外包,还是现在的公司,也陆续做过一些项目,但每次做完匆匆上线后,便忙着去做其他的事情。如此反复,自身技术和开发效率也没有做多少提升,总是寻找重复的库,百度重复的问题,查以前自己写的代码...深知长此会束缚自己的成长,所以以后每做完一个项目便做一些记录,方便自己查看。
- 后台json数据返回有空值。(吐槽)撕不过后台,只能自己想办法,一开始想的是写一个NSDictionary的分类,再写方法遍历,替换空值,但是随着项目进展数据层次也越来越深,每个接口都需要单独遍历,百度了好久,原来AFNetwoking直接给提供了相关的方法,给大神跪了。。。
+ (AFHTTPSessionManager * )sharedInstance
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sessionManager = [AFHTTPSessionManager manager];
_sessionManager.requestSerializer.timeoutInterval = 40.0;
// 服务器json有空值判断
AFJSONResponseSerializer *response = [AFJSONResponseSerializer serializer];
response.removesKeysWithNullValues = YES;
_sessionManager.responseSerializer = response;
//配置MIME类型
_sessionManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", @"text/plain",nil];
});
return _sessionManager;
}
- iOS10以后打电话会有几秒的延迟,解决办法,开线程
// 打电话会卡线程
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://137xxxxxxxxx"] options:@{} completionHandler:nil];
});
- sdwebimage 解决不显示图片,异步读取
- (void)setModel:(EDMomentModel *)model {
_model = model;
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSURL *imgUrl = [NSURL URLWithString:_model.img_yh_url];
NSData *data = [NSData dataWithContentsOfURL:imgUrl];
UIImage *img = [UIImage imageWithData:data];
dispatch_async(dispatch_get_main_queue(), ^{
_iconIv.image = img;
});
});
三方控件
-
YBPopupMenu
2017-09-21 10.23.24.gif
网友评论