Swift访问Foundation框架

Foundation框架提供了大量的界面无关的api,为 Core Foundation 框架的许多功能提供了 Objective-C和Swift 的封装。
Foundation定义了大量的类,大体可分为

  • 值对象
  • 集合
  • 操作系统服务:文件系统、URL、进程通讯
  • 通知
  • 归档和序列化 -

下面的代码,基于Swift,对Foundation常用的api进行了简单的访问。包括结构体NSRange、NSSize、NSPoint,日期NSDate,字符串NSString,文件读写,字典操作等。说明写在注释中。
代码如下:

import Foundation

//测试结构体
func testStruct()
{
    let range = NSMakeRange(3, 5)//NSRange表示一个范围
    print(range)//输出(3,5)
    print(NSStringFromRange(range))//按格式是输出(输出{3,5})

    let point = NSMakePoint(4, 6)//NSPoint表示一个位置
    print(point)//输出(4.0,6.0)

    let size = NSMakeSize(100, 200)//NSSize表示大小(宽、高)
    print(size)

    let rect = NSMakeRect(4, 6, 100, 200)//NSRect表示一个区域(x起点,y起点,宽,高)
    print(rect)
}

//测试日期
func testDate()
{
    let currentDate = NSDate()//获取当前日期
    print(currentDate)//打印utc时间(2016-01-17 15:09:04 +0000)

    let dateFormatter = NSDateFormatter() //日期格式化
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    print(dateFormatter.stringFromDate(currentDate))//打印本地化的时间(2016-01-17 23:09:04)

    var newDate = NSDate()
    newDate = newDate.dateByAddingTimeInterval(100)//在当前日期的基础上加上100秒
    print(newDate)

    let futureDate = NSDate.distantFuture() //获取随机的一个将来的日期
    print(futureDate)

    let timeInterval = newDate.timeIntervalSinceDate(currentDate)//获取时间差
    print(timeInterval)

    let earlierDate = newDate.earlierDate(currentDate)//获取两个日期中比较早的日期
    print(earlierDate)

    let myDate = dateFormatter.dateFromString("2016-01-22 12:00:00")//从字符串获取日期
    print(myDate)
}

//测试NSString
func testString()
{
    let nsString = NSString(format: "%@","test NSString") //NString表示一个字符串
    print(nsString)
    print(nsString.hasPrefix("test"))//是否有某个前缀
    print(nsString.rangeOfString("NSS"))//获取子字符串的位置
    print(nsString.substringFromIndex(3))//获取从第3个位置开始到末尾的子字符串,编译出错,参数传Index类型,但是文档是Int
    print(nsString.length) //字符串的长度(是字符数,不是字节数)

    let swiftString:String = "test Swift String"//使用Swfit内置的String
    print(swiftString)

    let swiftStringTest = "test Swift StringTest"//自动推断类型为String
    print(swiftStringTest)
}

//测试文件读写
func testFile()
{
    let path = "/Users/lingyun/Desktop/test.txt"//文件读取,将文件放在桌面
    do{
        let strContent = try NSString(contentsOfFile: path,encoding:NSUTF8StringEncoding)
        print(strContent)
    }
    catch {
        print("文件读取错误")
    }

    let writePath = "/Users/lingyun/Desktop/testWrite.txt"//文件写入,将文件放在桌面
    let testString = NSString(format: "test Swfit file write.")
    do{
        try testString.writeToFile(writePath,atomically: true,encoding:NSUTF8StringEncoding)
    }
    catch{
        print("写入错误")
    }
}

//测试字典,使用Swift字典,而非NSDictionary
func testDictionary()
{
    var dic:Dictionary<String,String> = ["01":"小张","02":"小李"]
    print(dic)
    print(dic["01"])

    dic["03"] = "晓明"
    dic.updateValue("小明",forKey: "03")
    dic.removeValueForKey("01")

    for(key,value) in dic
    {
        print("键:\(key) 值:\(value)")
    }
}

testStruct()
testDate()
testString()
testFile()
testDictionary()

参考资料:
1、http://www.cnblogs.com/kenshincui/p/3885689.html

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...