iOS笔记(35) 格志周年系列之夏令时(三) 临时花絮

本文仅作为个人学习记录使用,也欢迎在许可协议范围内转载或使用,请尊重版权并且保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS方式订阅本站,这样您将能在第一时间获取本站信息.

开篇扯淡

说曹操,曹操到。嘛当,还说总结一下时间的问题。这不blog这个系列没有写完。又爆了出一个时间相关的Bug。我只能说编程路茫茫,吾将上下求索。这次就着热乎着,来说是一个遇到了什么问题。

遇到的问题

有日本用户反馈,新版本更新以后,他日历上的时间全部乱了。而且无法写入日记。经过与用户沟通(感谢喵神onevcat的日文人肉翻译)分析得到用户使用和历(日本日历)。然后debug进去果然日期全部乱了。跟进去debug了一番,发现是之前解决夏令时的函数只考虑了公历!!!而iOS系统默认有三种日历。公历、和历、佛历。又一次无情的证明了我是一个天朝土包子。

阅读更多

学习UI设计笔记(一)

本文仅作为个人学习记录使用,也欢迎在许可协议范围内转载或使用,请尊重版权并且保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS方式订阅本站,这样您将能在第一时间获取本站信息.

开篇扯淡

那啥, 我知道NSDate的坑没有搞定。缓缓,缓缓。我在开个新坑来着。恩恩这个坑就是记录一下怎么学习Sketch 这个软件的。

首先,我买了本更优秀的APP-31个APP用户界面设计经典案例。 高手勿喷,这种图文并茂,手把手的交比较适合我这种菜鸟。

这本书的唯一好处是他的例子是Ai的。而Sketch也是矢量图。所以我以为会有些类似的操作。(其实根本是两个软件啊!!!!)

然后我准备把他说的31个例子都用Sketch来模仿一边。恩,先把Sketch的大部分功能运用熟练再说(就是花了小几百不想让他吃灰而已)

阅读更多

iOS笔记(34) 格志周年系列之夏令时(二)

本文仅作为个人学习记录使用,也欢迎在许可协议范围内转载或使用,请尊重版权并且保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS方式订阅本站,这样您将能在第一时间获取本站信息.

开篇扯淡

恩,两月没更新blog,hexo都出来新主题来着。其实昨天为了找个背景图找了一小时我会随便乱说。就是为了找一个配合网站标题的背景图。其实hexo默认的就蛮好了,但是为了显示那么一点点与众不同还是替换了一下。

扯淡结束,接上一篇格志周年系列之夏令时(一)

第一阶段Bug

上次说过一个中国高富帅用户发Email来说,他去泰国旅游的时候,日记都不见了。

其实不是日记不见了,日记都好好的躺在sqlite文件里面。而是查询不出来了。日记的保存是用了一个函数去获得了每天的00:00:00. 然后作为唯一标识来区别和查询。

那日期出了啥问题?

我们来快速的分析一下

调用的是

1
2
3
4
5
6
7
8
- (NSDate *) dateAtStartOfDay
{
	NSDateComponents *components = [CURRENT_CALENDAR components:DATE_COMPONENTS fromDate:self];
	components.hour = 0;
	components.minute = 0;
	components.second = 0;
	return [CURRENT_CALENDAR dateFromComponents:components];
}

里面有两个宏

1
2
#define DATE_COMPONENTS (NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit |  NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSWeekdayOrdinalCalendarUnit)
#define CURRENT_CALENDAR [NSCalendar currentCalendar]

假设你使用过Cocoa时间这些类的话能很容易的看出。dateAtStartOfDay函数就是把你持有的date以当前日历为基础,其他不改,小时,分钟,秒钟设置都为0。这样就能得到一个基于当前日历下的date这一天的00:00:00。

简单看上去没有什么问题,回到高富帅的问题。他出国玩一圈咋时间就变了呢?答案是[NSCalendar currentCalendar]改变了。NSCalendar的改变使得dateAtStartOfDay返回的时间也变了。debug到这一步才发觉靠当初为什么没有想到有时区的这个问题。

自己给自己找一个理由就是到目前为止,我只用过大天朝的+8时间。潜意识里面根本没有说换一个时区这样的概念。(后来某一天我翻了本C语言的书第一章就说了国际化时间的问题,再后来weibo上大家都纷纷表示时间是编程里面一个基础点而且做好不容易,只能说我还是太菜太年轻了。这些是后话了)

说道这里那就开始科普一下地球上时间的问题

阅读更多

iOS笔记(33) 格志周年系列之夏令时(一)

本文仅作为个人学习记录使用,也欢迎在许可协议范围内转载或使用,请尊重版权并且保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS方式订阅本站,这样您将能在第一时间获取本站信息.

开篇扯淡

两月没写blog,没羞没皮了。以后作息规律一些,blog更新还是频繁一些。格志在2014年2月11日就整整上线一周年了。2013一年做格志,由于自己的技术实在比较菜。导致从上线的第一天起,整个团队跟着一直打补丁。小的坑就不说了,大的坑有两,一个iCloud + Core Data世界性难题。一个是全球时间问题。这篇blog就用来专门记下时间的坑。中间还有个插曲——格志在三月上线了2.0的全新专门为iOS 7设计的版本。时间问题在去年10月份改完以为对了就没有改过。结果3月9号是3月的第二个周日,美国地区进入夏令时。格志中又再次发生了时间问题,导致日记显示不全。之前开会说过放错不可怕,可怕的是放同样的错误。再次放错以后我都呆住了。那可是我写过测试用例的啊。结果当时一run测试就挂掉了。瞬间脑子蒙掉。然后上周通宵了一天,基本每天到3点把世界时间问题给彻底搞定。(希望是彻底)所以趁着我现在还有印象,记录一下。

阅读更多

读 Jony Ive: The Genius Behind Apple's Greatest Products 笔记

本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,请尊重版权并且保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS方式订阅本站,这样您将能在第一时间获取本站信息。

开篇扯淡

发现之前的读书笔记写的好少啊。 都是每年的一月份写一次,然后一整年都没有写。其实并不是没有看书而已,只是看了没写而已。2013除了专业的书籍还是看了一些乱七八糟的书籍。比如开始看王小波,看冯唐。对了ooyor大神同学去台湾做出国毕业旅行游的时候还给我带来了一本冯唐实体的小黄书《不二》。还有就是2013年初看完柴静的《看见》和李承鹏《全世界人民都知道》,而且还去不在书店签了4本。亲笔签名哦!其他的看了也就没有印象了。

其实读大学以来,每年的书籍开销都是一笔不小的数目。这就造成了一个严重的问题!每次不管是短途迁移还是长途迁移都搬书搬的欲仙欲死。所以,2013我都是可以买电子书坚决不买实体书。如果没有电子书,我就等电子书出来。如果没有电子书,不是很想看的就不买了。电子书多好迁移啊,一个iPad就带走千万本。不过也有些郁闷,我KK的全套在字节社里面结果现在字节社快挂的样子,多看上买了目前最多的书,但是被小米收掉以后不喜欢它的作风。现在我已经全面的转向了豆瓣读书。图灵社区也买了些然后丢多看里面看。(多看在我这里已经沦为Good Reader的替代品)。

恩,2014希望我想看的书都出电子版吧!让电子化来的更加猛烈一些。

Jony Ive

这次的书总有种是为了敛财而来,作为一个Apple的脑残粉。其实Apple这40年来的各种事件和经历。已经在无数的书籍、文章、电影里面一次一次的重复了很多很多次。每看一次就对Apple的印象丰满一些。到现在Apple在我心中已经是一种具体的形状。这次的Jony Ive传记对我来说,也只是对于Apple印象的一个补充而已。

年少成名

大英帝国的子民,而大英帝国好歹是工业革命的发起地。虽然美帝现在势不可挡。但是200年来的现代化进程底蕴是天朝这种年轻的2b国度无法比拟的。而且Jony Ive人家老爸
人家16-7岁的时候就已经各种拿奖了。

PS

这篇blog的创建时间是1月8号。现在时刻是3月18号。所以我还是把他发掉把。只开了头而已。现在记不住了。

一月到三月瞟过的书有:

「从你的全世界路过」 (看错作者买错书了)

三本Objective C的

GEB瞟了几页。

豆瓣上冲了150.忘记买了些啥了记得有几本挺贵。反正是不在多看上买书了。