前言

Swift 体会

我不算是一个果粉,但是我很喜欢苹果的产品,甚至可以说是狂热。6 2 号晚上我一夜未眠,就是在等苹果的 WWDC,这是开发者的狂欢之夜(或者狂欢之日,因为美国时间是白天)。凌晨 1 点,终于开始了,但是苹果一次又一次的新产品展示让我一次又一次的失望,作为开发者的我表示无感。

我坚持看因为我不相信苹果总是让我失望。最终在 WWDC 的最后一个环节,我真心沸腾了,因为一门新的编程语言 Swift 出现了。要知道在饱受了 Objective-C 语言之苦后看见 Swift 是一种什么心情,你不需要再为引用计数而头疼,不需要再为没有命名空间而不得不添加该死的前缀而烦恼,不需要再为Objective-C 那难懂的语法而整天晕乎乎的。此外,苹果还为我们提供了 Playground 这个工具,它能够在我们写程序时实时计算出变量的值,甚至还能呈现数字变量的趋势图,让编程富有乐趣及创造性。

由于 Swift 出现得晚,所以她拥有了目前世界几乎所有编程语言的优点,而没有目前世界所有编程语言的缺点,Swift 她真的太漂亮了。下面我们开始一步一步认识她。

运行速度

从苹果官方所给出的数据来看,Objective-C Python 2.8 倍,而 Swift Python 3.9 倍,可见苹果在 Swift 上下了大量的功夫进行优化。

开发环境

Swift 语言的开发环境是苹果公司提供的集成开发环境 Xcode,可以用来开发 iOS 应用、iOS 游戏、OSX窗体程序、OSX 游戏、OSX 命令行程序,读者可以直接从 AppStore 中搜索并下载。用 Swift 语言可以做到几乎所有 Objective-C 所做到的事情,所以 Swift 必将取代 Objective-C,如果你还没有学过 Objective-C 语言,那么恭喜你,不用学了,直接学习 Swift 即可。

运行环境

Swift 被强大的 llvm 编译成机器码,直接运行在系统中。由于 Swift 是苹果的产品,所以目前只支持苹果的系统(OSXiOS)。我们期待会有社区开发出跨平台的Swift语言,因为这么好的一门编程语言,应该能够让世界上的每一个人享受到才好,就像 mono C#语言跨平台一样。

语言特性

具有所有现代编程语言的特性,包括:面向对象、类扩展、命名空间、闭包、泛型、强类型、函数多个返回值等等。

这些特性能够大大提高程序员的开发效率,从而为企业节约成本,同时让编程工作充满乐趣。

语法简介

通过前文的介绍,相信读者已经迫不及待的想尝试 Swift 了,下面我们就来认识一下 Swift 的语法。简洁的语法

Swift 抛弃了 Objective-C 那种古板难懂的语法,采用通俗易懂的脚本语言类语法,学过 PythonJavaScript 或者 Lua 语言的读者肯定不会陌生,这大大降低的初学者的学习成本。

变量及常量

如果要定义一个变量 i 等于 1,只需要写 var i = 1,可以看出,不需要指定类型,因为她会自动做类型推断

如果要定义一个常量 PI 等于 3.14,100.000000%)">let PI = 3.14,常量只能被赋值一次。输出语句

Swift 中,可以直接使用 println 函数来输出一段任意类型的信息,如下:println("Hello Swift")

字符串连接

Swift 语言中的字符串连接同样也非常简单,如果两个值都是字符串,则可直接用加号连接,如下所示:var hello = "Hello"
var world = "World"
var str = hello + world如果将要连接的值中有其它类型,则直接使用\()包括就可连接,如下所示:

var hello = "Hello"
var num = 100
var str = "\(hello) \(num)"

从上面的示例可以看出,相比 Objective-C 或者 C/C++语言来说,简单太多了。循环

传统的 C 语言的 for 循环是这么写的:for (int i = 0; i < 100; i++) {

//Todo

Swift 中,将循环大大简化了,100.000000%)">for i in 0..100{

//Todo

}

具体内容还有很多,详见本书正文。

条件判断

条件判断与 C 语言并不区别,你可以直接书写 C 语言的语法即可通过,如下:if(count>5){

//Todo

}

Swift 中还可以再简洁一些,100.000000%)">if count>5 {

//Todo

}

另外,在 Swift 语言中 Switch...case 语句可以不用加 break 关键字。

太多了,接下一篇吧。。。。。。

Swift 体会的更多相关文章

  1. ios – 异常断点处于活动状态时,应用程序在启动时崩溃

    我刚开始继续开发一款适用于商店的传统iPad应用程序.我注意到项目中的异常断点未启用.当我启用它时,应用程序在启动时崩溃,但在输出窗口中没有给出任何信息,而在线程视图中只有相当无用的信息(见下文)我试着解决它..>将Autolayout设置为关闭.>通过编辑和重新保存故事板文件..但到目前为止没有运气.我的猜测是,故事板中的某些内容被破坏了,因为AppDelegates“确实完成了启动……”

  2. ios – 如何使用Objective C类中的多个参数调用Swift函数?

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

  3. ios – Swift 4添加手势:覆盖vs @objc

    我想在我的视图中添加一个手势,如下所示:但是,在Swift4中,我的编译器给出了以下错误:建议添加@objc以将此实例方法公开给Objective-C.实现此目的的另一个选项将覆盖touchesBegan()函数并使用它来处理点击.我试图以“Swift”的方式做到这一点,而不必带入Obj-C.有没有纯粹的Swift方式来添加这个轻击手势而不使用@objc?

  4. ios – 将视频分享到Facebook

    我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

  5. ios – Objective-C中“and”关键字的含义是什么?

    我在Xcode中输入了一条评论,但忘了领先//.我注意到了这一点并且突出显示为关键字.我做了一些谷歌搜索,但我似乎无法弄清楚它做了什么.这是什么意思?解决方法它是&&的同义词.见iso646.h.

  6. ios – 以编程方式在Swift中添加联系人

    我想在Swift中以编程方式添加联系人.我发现了一些Objective-C示例,但我没有让它们工作,甚至在Objective-C中也没有.我不希望这涉及到AddressBookUI,因为我想从我自己的UI中获取值.解决方法这是在Swift中添加联系人的快速方法.我在我的iPhone5iOS7.1上验证了它,因为我发现模拟器并不总是与我的手机对AB的东西相同.您可以添加一个按钮并指向此方法:顺便说一下–它假设你已经分配了一个地址簿var,你可以通过覆盖viewDidAppear来打开视图.它也会执行安全提示

  7. ios – 在AFNetworking中设置用户代理

    我们的iOS应用程序最近被Apple拒绝,因为它无法与我们的服务器api建立有效连接.我们使用特殊格式的用户代理来注册设备令牌等.如果用户代理不适合我们的sheme,则api会阻止请求.这一切都很好地在模拟器和真实设备上测试应用程序.用户代理设置正确,api调用工作正常.当Apple测试应用程序时,他们拒绝了它,因为应用程序无法连接到api.当我们检查服务器日志文件时,我们注意到,Apple测试人

  8. ios – 将iphone应用程序重定向到苹果商店

    我有一个iPhone应用程序,当有可用的升级时,我想提示用户升级,如果他们点击升级,我想将它们重定向到苹果商店.这是怎么做到的?

  9. ios – 如何从Apple Watch调用iPhone上定义的方法

    有没有办法从Watchkit扩展中调用iPhone上的类中定义的方法?根据我的理解,目前在Watchkit和iPhone之间进行本地通信的方法之一是使用NSUserDefaults,但还有其他方法吗?

  10. ios – Objective-C中的Google用户serverAuthCode nil

    我正在尝试将GoogleSignIn框架集成到iOS应用程序中,并对服务器上的用户进行身份验证.我设法登录用户,但在–(void)signIn:(GIDSignIn*)signIndidSignInForUser:(GIDGoogleUser*)用户withError:(NSError*)错误委托方法,user.serverAuthCode为nil,我需要通过此服务器身份验证代码,嗯,验证服务器上

随机推荐

  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,所以编译器会报错,现在来一一解决。

返回
顶部