接着是对Swift的吐槽……
系统基础API少我就不吐槽了,很多在.NET平台只需要Dot一下的功能,在iOS下都需要自己实现,比如今天要分享的这个,明明就是DateTime类型的一个属性好吗?
强类型,标准的强类型,超级强的强类型,强到无以复加。这事儿怎么说呢,虽然C#也是强类型的语言,但是在C#的世界里是有着“类型隐式转换”这一大神的存在的。对于Int、Int32、Int64这几种基本类型之间的基本运算都需要进行类型转换,估计Java也不需要吧?也许C、C++是需要的,但是这东西我根本就没学过。
没有异常处理。也不是没有,原因可能是因为Swift还不成熟。我找到了异常处理相关的Class,但是不知道如何抛出一个异常,目前好像没有关键字支持这个操作。
心平气和的说……
相对于Objective-C,Swift还算是一门大概看得懂的语言。大概其就是N多种语言的杂合体。但是确实要比Objective-C要容易上手的多。
在Swift语言中没有 公有成员 和 私有成员 之分,所以 在Swift和Objective-C的世界中所有的类成员都是共有的。感觉Swift抄袭.NET的地方是他的扩展 extension 跟扩展方法很像有没有?
在极客学院的视频中,讲师告诉我们,可以用extension来实现命名空间的功能。但是这样做代码编译会变得巨慢,你造吗?这个情况直接导致我将.Net Framework源码移植到Swift的想法破灭了。对了,Swift语言暂时还不能编译为Cocoa Touch Static Library,编译器报错,也不知道什么时候可以修复……坐等么?可是XCode 6.0.1都出了啊~
正文的说
写这篇文章就是为了共享代码,为毛搞着搞着就成为吐槽了……好吧,吐槽到此为止,接着上代码……
1
2
3
4
5
6
7
|
extension NSDate {
func dayOfWeek() -> Int {
var interval = self.timeIntervalSince1970;
var days = Int(interval / 86400);
return (days - 3) % 7;
}
}
|
不知道你能不能理解,看到我博客的编辑器竟然可以插入Swift代码,并且做语法高亮的时候,我有多兴奋,WordPress果真是强悍中的强悍啊。
使用方法很简单,将上面的代码放在你的程序里,然后实例化一个NSDate,调用其dayOfWeek方法即可。
1
2
|
var dt = NSDate();
var week = dt.dayOfWeek()
|
week为整形,从0到6分别表示 周日 到周六。
PS:越来越发现自己的表达能力下降了,要多写一些博文才是。加油~