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访问Foundation框架的更多相关文章

  1. Html5跳转到APP指定页面的实现

    这篇文章主要介绍了Html5跳转到APP指定页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. ios – 比较两个版本号

    如何比较两个版本号字符串?例如:3.1.1和3.1.2.5.4现在我需要找出3.1.2.5.4是否高于3.1.1但我不知道如何做到这一点.有谁能够帮我?

  3. iOS:无法获取Caches目录的内容

    试图获取Caches目录的内容:路径是正确的,我可以在Finder中看到它存在并包含我的文件.directoryItems是nil,错误是我怎么了?解决方法你使用错误的路径.要为应用程序获取正确的缓存目录,请使用此:在cacheDirectory中,您将收到这样的字符串路径:整个代码:

  4. ios – UIColor到十六进制(网页颜色)

    有没有简单的方法将UIColor转换为十六进制值?

  5. ios – 如何使用CNContactVCardSerialization dataWithContacts:方法获取联系人图像的VCF数据?

    我正在使用CNContacts和CNContactUI框架并通过此选择联系人和此联系对象具有contact.imageData和日志.但当我试图通过交叉检查这些数据这是空的:为什么我收到此null并且此联系人在签入联系人时有图像?

  6. ios – 签名无效:oauth_signature

    我正在尝试生成oauth_signature以使用FatsecretAPI,但是获得无效的签名错误–无法弄清楚原因.我尝试尽可能准确地遵循here所述的所有步骤(参见步骤2)来生成签名值.他们说:UsetheHMAC-SHA1signaturealgorithmasdefinedbythe[RFC2104]tosigntherequestwheretextistheSignatureBaseStr

  7. ios – 在没有alloc init的情况下将NSString转换为NSAttributedString

    解决方法我建议在Nsstring上创建一个类别,使用一种方法将其转换为NSAttributedString,然后在整个项目中使用该辅助方法.像这样:

  8. ios – 如果我将自动释放的对象桥接到Core Foundation,我必须使用__bridge或__bridge_retained吗?

    ARC迁移工具遇到了这个问题:特别是,它不确定它是否应该执行__bridge或__bridge_retained.而我也是.-fileURLWithPath返回一个自动释放的对象,在这个地方我不是fileURL的所有者.但与此同时,该对象的保留计数至少为1.我敢打赌,这只能用__bridge来完成.解决方法您只想为此使用常规__bridge强制转换.仅当您想要管理强制转换CF对象的生命周期时,才会使用__bridge_retained.例如:所以__bridge_retained确实告诉编译器你有一个AR

  9. ios – 确定图像选择器媒体类型是否为视频

    优选地,包括“所有图像类型”或“所有视频类型”的方式.解决方法最好检查一下与特定UTI的一致性.现在,iOS告诉你它是一个public.movie,但它明年会说些什么呢?你会看到有人检查public.video.太棒了,所以你硬编码了两种而不是一种.但问“这是一部电影吗?”而不是硬编码您认为iOS将返回的特定类型?

  10. ios – 使用NSURLSession获取JSON数据

    我试图从谷歌距离api使用NSURLSession获取数据,但如下所示,当我打印响应和数据时,我得到的结果为NULL.可能是什么问题?

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部