第一篇

作者: melouverrr | 来源:发表于2016-01-04 21:35 被阅读66次

好吧,这里是第一篇个人博客。从小到大一直未玩过博客,今日受CZH君的启发,决定也玩玩博客。一是为了记录自己的学习轨迹,二也是算锻炼锻炼文笔,这对习惯少说多做的我来说,是一种全新的体验。

那么,今天来总结一下做了些什么吧。

阅读了CZH君的weather app,学到了一些以前忽略的东西。当然,也有自己对某些逻辑的见解,并在他的基础上进行了尝试。

直接说代码吧:

1.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

[[DataBaseManager sharedDataBaseManager]insertForecastWeather:_forecastData];

});

[self showForecastData:_forecastData];

didGainForecastWeather=YES;

[self whetherCompleteRequest];

关于后台异步处理数据库操作,主线程更新UI,我认为不必用_sync(main_queue),会有deadlock的隐患。既然此处已经是在回调block中,数据库操作和UI操作没有先后关系,则直接调用内部方法即可。

2.

关于枚举值。

typedefNS_ENUM(NSUInteger, <#MyEnum#>) {

<#MyEnumValueA#>,

<#MyEnumValueB#>,

<#MyEnumValueC#>,

<#MyEnumValueD#>

};

用以分辨不同的状态码,从而避免一些重复代码。Don’t repeat yourself.枚举的使用是简化代码,理清逻辑的重要手段。

3.

复习之前看过的动画教程。说起来,这几天杂七杂八的事情,又没有继续动画方面的学习,不过也不太急,终归都是要学会的,只要坚持在做,一切都会慢慢来的。

CABasicAnimation* rotation=[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

rotation.toValue=@(2*M_PI);

rotation.duration=0.5;

rotation.cumulative=YES;

rotation.repeatCount=MAXFLOAT;

[_renewButton.layer addAnimation:rotation forKey:@"rotation"];

Layer的属性动画(留给以后勘误)。

这个动画效果还是不错的,应用于刷新按钮。

4.

_coordinateDic[@"lon"]]];

NSURLRequest* weatherRequest=[NSURLRequest requestWithURL:weatherURL];

NSURLSession* weatherSession=[NSURLSession sharedSession];

NSURLSessionDataTask* acquireWeatherData=[weatherSession dataTaskWithRequest:weatherRequest completionHandler:^(NSData* data,NSURLResponse* response,NSError* error) {

if(error==nil){

NSDictionary* weatherDic=[NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

NSArray* weatherArr=[weatherDic objectForKey:@"list"];

self.gainForecastBlock(weatherArr);

}else{

NSLog(@"%@",[error localizedDescription]);

}

}];

[acquireWeatherData resume];

关于系统原生的URLSession使用。

5.

mantle YYModel 等ORM工具。可以极大的简化代码,减少构建模型的重复代码,但是记得要写明映射图,如:

+ (NSDictionary*)modelCustomPropertyMapper {

return@{@"publishDate":@"publish_date",

@"itemsCount":@"items_count",

@"issueID":@"issue_id"

};

}

+ (NSDictionary*)modelContainerPropertyGenericClass {

return@{

@"items":RecipeItem.class

};

}

对于有container的(字典,数据),要写明这些container中的元素的类是什么。运用YYModel不需要继承,而mantle需要。YYModel是以category的形式集成的,无侵入性。另外还有MJExtension。

好了,今天就写这么多把。以后会开启复习笔记的模式, 把evernote中的学习记录一个个过一遍,加深印象。另外,考试fighting!

相关文章

  • test

    新年第一篇 新年第一篇 新年第一篇 新年第一篇 新年第一篇 新年第一篇 新年第一篇 新年第一篇 新年第一篇 新年第一篇

  • 第一篇文章

    第一篇文章第一篇文章第一篇文章第一篇文章第一篇文章第一篇文章第一篇文章第一篇文章第一篇文章第一篇文章第一篇文章第一...

  • 第一篇 简书

    第一篇 简书第一篇 简书第一篇 简书第一篇 简书第一篇 简书第一篇 简书第一篇 简书

  • 发布第一篇

    发布第一篇,发布第一篇

  • 第一篇

    这是第一篇?是的,就是第一篇。呵呵。

  • 如何当好创业公司的CTO?

    这个问题其实 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十...

  • 深挖基础知识第三篇

    第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一...

  • 深挖基础知识第一篇

    第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一...

  • 深挖基础知识第二篇

    第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一...

  • 深挖基础知识第五篇

    第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一...

网友评论

      本文标题:第一篇

      本文链接:https://www.haomeiwen.com/subject/zmekhttx.html