25yicms利用ASP.NET(C#)+MSSQL技术全力打造功能最强大的营销型企业网站管理系统,企业做网站系统,做网站软件,提供div+css企业网站模板。
阅读内容

如何在iOS下使用Swift语言获取某个日期是星期几


时间:2014/09/19   来源:企业网站管理系统
   作为一个由企业网站管理系统的C#开发人员切入的iOS菜鸟程序员,看到Swift“复杂多变”的语法时是很崩溃的,明显感觉Apple是一个特别不负责任的公司,语法变来变去的,有意思么?几乎XCode 6 每一个Beta版本的发布,都伴随着Swift语法的变动。为在网上购买Swift实体书的同学挽尊,因为你们会发现,等书到手的时候,语法变了会觉得很挠头。
  
  接着是对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:越来越发现自己的表达能力下降了,要多写一些博文才是。加油~
点击次数:       打印此页  关闭