加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift访问Foundation框架

发布时间:2020-12-14 07:22:24 所属栏目:百科 来源:网络整理
导读:Foundation框架提供了大量的界面无关的api,为 Core Foundation 框架的许多功能提供了 Objective-C和Swift 的封装。 Foundation定义了大量的类,大体可分为 值对象 集合 操作系统服务:文件系统、URL、进程通讯 通知 归档和序列化 - 下面的代码,基于Swift,

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读