01-Swift 介绍

 

简介

  • Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序
  • 2014 年,在 Apple WWDC 发布
    • 几家欢喜,几家愁
    • 愁者:只学Object-C的人
    • 欢喜者:之前做过java/python/js语言的人

历史

  • 2010 年 7 月,苹果开发者工具部门总监 Chris Lattner 开始着手 Swift 编程语言的设计工作
  • 用一年时间,完成基本架构
  • Swift 大约历经 4 年的开发期,2014 年 6 月发表
  • 克里斯·拉特纳何许人?
    • LLVM 项目的主要发起人与作者之一
    • Clang 编译器的作者
    • 苹果公司『开发者工具』部门的主管
    • 领导Xcode、Instruments等编译器团队
    • Swift的大部分基础架构均由他1人完成
    • 评价:
      • 大神中的大神
      • 牛逼中的牛逼

特点

  • 特点

    • 从它的语法中能看到Objective-C、JavaScript、C#、Python等语言的影子
    • 语法简单、代码简洁、使用方便
    • 可与Objective-C混合使用(相互调用)
    • 提供了类似 Java 的名字空间(namespace)、泛型(generic)、运算对象重载(operator overloading)
  • 为什么设计Swift语言

    • 让应用开发更简单、更快、更稳定
    • 确保最终应用有着更好的质量

Swift与Objective-C

  • 是否要从0开始呢?
    • 很多人有个疑惑,新的Swift语言一出,大家都要从开始学语法
    • 现在使用Objective-C的iOS程序员 跟 其他行业的非iOS程序员站在了同一条起跑线?大家从零开始
  • 个人观点
    • Swift是一门新的语言,语法难度对每个程序员都差不多,从学习Swift的语法角度看,大家是站在同一条起跑线
    • 从使用Swift做iOS开发的角度看,使用Objective-C的老牌iOS程序员更占优势,因为从Objective-C转为Swift去做iOS开发,仅仅是书写的格式变换了,iOS开发的步骤、思想、框架,都没有改变

现状

  • 目前有些公司的新项目已经直接采用 Swift 开发
  • 目前很多公司已经在做 Swift 的人才储备
  • 应聘时,会 Swift 开发 无疑会增加自身筹码
  • 但是国内大部分公司还在观望

重要性

  • 苹果目前在大力推广Swift
  • 斯坦福大学的公开课目前也是使用Swift在授课.因为以后Swift必将代替OC
  • 题外话:我们同学去面试,面试官问是否会Swift,如果会,我们下个项目直接用Swift来写.你可以教我们Swift.
  • 个人建议:
    • 先掌握Swift最基本的语法
    • 高级/特殊的功能随着学习的深入再深入研究
    • 千万不要浮躁(前面班级经验)
      • Swift并不难
      • 但是语法和OC区别非常非常大
      • 如果是一个听一听,听不懂就算了的心态.一定是学不好的
      • 如果想要学习,就认真听讲,好好练习

资源网站

  • 《The Swift Programming Language》中文版 http://numbbbbb.gitbooks.io/-the-swift-programming-language-/

  • swifter 作者王巍,需要付费购买 http://onevcat.com

转载于:https://www.cnblogs.com/mgmingmingjiushini/p/5413265.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017—2018 实验报告:实验一

实验一:实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 张旭升 学号:20162329 指导教师:娄嘉鹏 王志强 实验日期:9月25日 实验密级: 非密级 预习程度: 已预习 必修/…

病床呼叫系统有显示屏c语言,病床呼叫系统毕业设计

内容介绍完整版大学病床呼叫系统毕业设计,已修改完格式摘 要医院已经从人工管理模式向智能化方向发展。“病床呼叫系统”可以实现对病房的智能化管理,可实现呼叫、求救警报、信息存储、显示等等功能。患者在住院期间,可能会在任意时间请求医…

1. mybatis批量插入数据

通过list <insert id"saveByList" useGeneratedKeys"true" parameterType"java.util.List"> insert into T_App_Default_User(UserID,AppType,CreateTime)values <foreach collection"list" item"item" index&quo…

iOS开发 - Swift实现清除缓存功能

前言: 开发移动应用时&#xff0c;请求网络资源是再常见不过的功能。如果每次都去请求&#xff0c;不但浪费时间&#xff0c;用户体验也会变差&#xff0c;所以移动应用都会做离线缓存处理&#xff0c;其中已图片缓存最为常见。 但是时间长了&#xff0c;离线缓存会占用大量的…

c语言结构体单元测试,C语言结构体单元练习.doc

C语言结构体单元练习1.有以下定义和语句&#xff1a;struct student{ int age;int num; };struct student stu[3]{{1001,20},{1002,19},{1003,21}};main(){ struct student *p;pstu;…… }则以下不正确的引用是 。A) (p)->num B) p C) (*p).num D) p&stu.age2.有以下结构…

如何开启IIS7以上的“IIS6管理兼容性”

护卫神PHP套件的安装&#xff0c;需要开启“IIS6管理兼容性”&#xff0c; 那么&#xff0c;如何开启IIS7、IIS7.5、IIS8.0的IIS6兼容模式呢&#xff1f; 设置的时候&#xff0c;请参照如下截图&#xff1a; 本文转自黄聪博客园博客&#xff0c;原文链接&#xff1a;http://www…

pop to 特定的UIViewController

1. 我们可以推出到特定的UIViewController 2. 有一个类没有navigationController&#xff0c;以前一般用delegate&#xff0c;我觉得我们可以把引用一个navigationController&#xff0c;然后使用它来推出另一个UIViewController转载于:https://www.cnblogs.com/studyNT/p/4486…

蓝桥杯:矩阵翻硬币

题目地址&#xff1a;http://lx.lanqiao.org/problem.page?gpidT126 这道题强烈建议用java做&#xff0c;毕竟自带BigInteger类。 此题看似是一道模拟题&#xff0c;但由于数据规模很大&#xff08;10的1000次方&#xff09;&#xff0c;只能找规律。规律是最终结果为sqrt(n)*…

ssh服务端口转发详解

端口转发的概念和应用什么是端口转发呢&#xff0c;我们知道&#xff0c;SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是&#xff0c;SSH 还同时提供了一个非常有用的功能&#xff0c;这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发&…

W ndoWs文件夹窗口,如何在本地网络中访问-Synology-NAS-上的文件-(Wndows).pdf

如何在本地网络中访问-Synology-NAS-上的文件-(Wndows)如何在本地网络中访问 Synology NAS 上的文件 (Windows)概述Synology NAS 经过专门设计&#xff0c;可快速简单地在本地网络中存储和共享文件&#xff0c;让您直接访问 SynologyNAS 上的文件而没有每次登录 DSM 的麻烦。例…

左移与右移

左移 无论被移动的数是有符号还是无符号&#xff0c;左移一位相当于乘2(在不溢出的情形下) 右移 对于无符号数&#xff0c;右移一位相当于除以2&#xff1b; 对于有符号数&#xff0c;如果还想获得同样右移除以2的效果&#xff0c;就要考虑算数右移&#xff0c;即符号位始终不变…

Serializing Lua objects into Lua Code

The following little snippet allows you to ‘pickle’ Lua objects directly into Lua code (with the exception of functions, which are serialized as raw bytecode). Metatable support is on the way, but for now, it should be useful enough. Example code: view s…

布局管理器android,Android课程---布局管理器之相对布局(一)

下面示例的是在父容器里如何设置按钮的位置&#xff0c;难度&#xff1a;***&#xff0c;重点是找到一个主按钮&#xff0c;设置它的id&#xff0c;然后根据它来设置其他按钮在父容器的位置。代码示例&#xff1a;android:layout_width"match_parent"android:layout_…

【Cocos2d-Js基础教学 入门目录】

本教程视地址频在&#xff1a;九秒课堂 完全免费从接触Cocos2dx-Js以来&#xff0c;它的绽放的绚丽让我无法不对它喜欢。我觉得Js在不断带给我们惊喜&#xff1b;在开发过程中&#xff0c;会大大提升我们对原型开发的利用率&#xff0c;使用Js语言做游戏开发&#xff0c;使游戏…

Hammer.js移动端触屏框架的使用

hammer.js是一个多点触摸手势库&#xff0c;能够为网页加入Tap、Double Tap、Swipe、Hold、Pinch、Drag等多点触摸事件&#xff0c;免去自己监听底层touchstart、touchmove、touchend事件并且写一大堆判断逻辑的痛苦。hammer.js不但支持触摸屏设备的浏览器&#xff0c;在桌面浏…

Android实现笔记本修改功能,安卓12第二个开发者预览版推出:UI、功能有所改进...

最近谷歌正式推出了Android 12的第二个开发者预览版&#xff0c;带来了很多UI和功能上的改进。首先最明显的变化应该是锁屏界面和下拉通知栏的音乐播放器。此前这部分UI的配色一直采用的是音乐专辑的主色调&#xff0c;但在Android 12上&#xff0c;这个配色变成了系统的强调色…

Delphi编译报错对照表

; not allowed before ‘ELSE’ → ElSE前不允许有“;” ” clause not allowed in OLE automation section → 在OLE自动区段不允许“”子句 ” is not a type identifier → 不是类型标识符 ” not previously declared as a PROPERTY → 前面没有说明PROPERTY ‘GOTO ‘ lea…

C语言中Union类型的使用方法

转自&#xff1a;http://blog.csdn.net/feimor/article/details/6858103 使用C语言时&#xff0c;常常使用struct&#xff0c;对于union类型却几乎没有用过&#xff0c;只知道它是联合类型&#xff0c;各字段共享一块内存&#xff0c;实际应用中却不知道它的具体用途。 今天读《…

android 点对点语音,使用Android SIP Stack进行点对点SIP呼叫?

我一直被困在同样的问题上.如果你可以在没有android sip api的情况下制作它,你可以查看rtp api,它为你提供了一些较低级别的工具来制作P2P VOIP应用程序,而无需服务器.To support audio conferencing and similar usages, you need toinstantiate two classes as endpoints for…

拓扑排序

用两种方式来实现 1、 深度优先搜索&#xff08;DFS&#xff09; 对有向图采取深度优先搜索&#xff0c;并且在postVist处&#xff0c;打印所访问的节点。最后打印出的字符序列的反序列正好满足拓扑排序。&#xff08;可以在postVist&#xff08;&#xff09;方法中&#xff0c…