内容简介

【福利】苹果终于开源Swift啦



对大家和苹果自己都是件大好事


刚被扎克伯格生女儿和捐款刷屏,略有一会喘息机会的朋友圈又被苹果开源Swift的新闻刷屏了。


其实苹果宣布要开源Swift语言有一段时间了,不过总算兑现承诺。一声令下,“开源”,好,瞬间如火如荼~


Swift官网:

https://developer.apple.com/swift/


吐槽:不过苹果我说你的iOS操作系统能不能Bug少一点,这iOS9每次更新都不解决前面版本的大问题也是醉了~只顾着赚钱不好好写代码了是吗。。。


小编之前自学iOS的App开发时学了Swift 1。当时感觉有点像Javascript,又有点像C#,也有点像C++,还有点像Ruby。总之这门语言博采众长,并且可以说超越它所借鉴的那些语言。目前Swift已经到版本2了,相信进步很多。




Swift入门很容易,几乎毫无痛点,比Objectiv-C容易多了。而且用Swift开发iOS的App非常快速,简单明了。


据官方文档介绍,Swift语言不是解释型语言,它最终会编译成二进制代码,并且它的运行效率比Object-c要快(有待求证)。


关于Swift,一些有意思的方面大家了解一下:


- Swift是“雨燕”的意思,表示快捷,迅速


- Swift背后的LLVM


都说成功男人背后都有一个更成功的女人,Swift也不例外。


Swift 背后的“女人”是LLVM(Low Level Virtual Machine的缩写,表示“底层虚拟机”。女人本来就有点“虚拟”,很神秘,不是吗...)一直是开源的。


简单做一个介绍,LLVM 编译器是一个雄心勃勃的项目,其目的是要建一个可重用的编译器组件系统,可用于构建各种工具,包括编译器、调试器、JIT系统、优化器、静态分析系统等 等。LLVM 常用作 C 和 C++ 的优化器,能生成用于多种不同架构的机器码。LLVM 正在多方面扩展和改进,以支持新优化、新目标、新领域和新特性。


下图是 LLVM 的编译器三段式架构(Frontend,Common Optimizer,Backend):




按照 LLVM 的设计哲学,编译器添加对一种语言的支持只需要写一个新的 Frontend 就可以了(这里相当于在左侧添加一个 Swift Frontend),另两部分是可以复用的。


老外的设计就是厉害啊~


LLVM官网:

http://llvm.org/


- Swift 出自开源大牛 Chris Lattner之手。


Chris Lattner在编译器方面,为开源所做的贡献,可谓居功至伟。他是 LLVM 项目的主要发起人与作者之一,Clang 编译器的作者。所以Swift不开源,Swift它爸爸不答应啊。


Swift的爸爸还是一位帅锅,明明可以靠颜值,偏偏还要会IT:




- 微软表示将很快在 Visual Studio 中整合对 Swift 的支持。


贪吃的微软Microsoft怎么可能耐得住寂寞~


- 苹果推出 Swift 语言的背后商业目的


苹果不会纯粹为了开发社区贡献技术,更重要的是其商业原因。Objective-C 出现30多年来,其奇特的语法、冗长的写法,并不为大量的开发者所习惯,尤其是已经熟悉过像C++,Java、C的开发者,想转到Objective-C,心理上的门槛就挺高的。


Swift 的出现,让这个转换的门槛成为历史。可以想见的是,Swift 语言的出现,再加上开源,更多的开发者将熟悉和使用 Swift 语言,意味着在苹果的视野之中,增加了大量的、数以百万计的开发者的支持。


- Swift 开源意味着什么呢?


Swift 开源,必然导致众多开发者对其本身的深入参与,以Swift 目前的优良特性,会有高手把它迁移至Linux、Windows甚至 Android等平台。届时,Swift 也许会成为一门真正全栈式的编程语言。有了更多开发者的参与,Swift 开发库不足的情况,会快速缓解。


- 那么Swift 会不会替换Objective-C呢?


苹果官方目前没有说要用Swift 代替Objective-C,但是做iOS开发的默认语言就是Swift了。如果想了解Swift ,请尽早,新事物的窗口期就是那么长时间。


骚年们,赶紧学习Swift吧,不学了解一下也是很好的~

苹果终于开源Swift啦的更多相关文章

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

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

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

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

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

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

  4. ios – Ad-hoc应用程序始终无法安装

    所以我在使用ios5的ipad1上安装ad-hoc分发应用程序时遇到问题.我在其他ipads中安装时没有这个问题…

  5. ios – 无法识别的选择器发送到实例NSTimer Swift

    解决方法让updateTime成为一个类方法.如果它是在一个纯粹的Swift类中,你需要在@objc前面说明该方法的声明,如:

  6. Xcode 4.5:没有iphoneos的“com.apple.product-type.application”产品类型

    我刚刚将Xcode升级到4.5版,但是我现在在尝试在iPhone上运行时遇到此错误:它在模拟器上工作正常,它曾用于4.4版本.解决方法您可能从XCode规范中丢失了应用程序部分退出XCode并转到(对于MacAppStore中的Xcode):/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Develope

  7. ios – 从Apple应用商店暂时删除应用

    我想暂时从Apple应用商店删除应用.在定价和可用性的iConnect仪表板中,有一个选项“从销售中删除”.这会完全删除应用程序吗?我想在几周内取消发布,然后将其退回.如果是这样的话,当我将它退还给可供出售时,是否会再次进行审核?.解决方法在iTunesConnect中>定价和供货部分,您可以轻松切换>适用于所有地区>从销售中删除选择正确的一个后,您只需点击“保存”按钮即可.它不会被删除或立即添加,在AppStore中更改状态需要一些时间.

  8. ios – Apple Watch,WatchKit Extension和主要应用程序

    有逻辑的主要应用程序,我们将应用程序扩展到AppleWatch.添加目标xCode后,再创建2个应用程序:扩展代码和监视工具包应用程序.问题:扩展程序中的代码如何重用已准备好的主要iOS应用程序的逻辑?

  9. ios – 应用内购买沙盒 – Apple登录的持续提示?

    解决方法我遇到了这个问题.我意识到我没有调用finishTransaction.

  10. 由于没有IAP的用户购买订阅,iOS应用被拒绝

    我在iOS平台上构建了一个工具应用程序.我想为用户创建三个级别.基本,专业和高级.每个级别提供不同的功能.因此,用户需要支付专业和高级订阅计划.级别之间的区别是用户可以创建比基本用户更多的文档.问题是我不想使用IAP,我不希望苹果分享30%的收入,所以我创建了一个网站让用户通过网络支付订阅.我之前已经批准了3次应用程序,没有任何拒绝.但最近,Apple评论团队拒绝了我的应用程序并提供了以下信息Fr

随机推荐

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

返回
顶部