swift教程_swift中文教程 - CSDN
精华内容
参与话题
  • Swift官方教程中文版

    2018-10-19 10:25:15
    最新官方文档中文翻译,带书签,针对新手,或是英文不好的童鞋,绝对物有所值
  • Swift完整教程系列

    2015-10-30 11:53:00
    教程为本人为所在公司的团队开发人员培训所准备的材料,这里详细地整理并写成文章,巩固自己的知识,也希望能让支持我的朋友们、同学们都能够快速学习Swift。 温馨提示 本篇文章中会不断更新,但是更新内容...

    引言

    本文只是章节说明,没有具体内容。本教程为本人为所在公司的团队开发人员培训所准备的材料,这里详细地整理并写成文章,巩固自己的知识,也希望能让支持我的朋友们、同学们都能够快速学习Swift

    温馨提示

    本篇文章中会不断更新,但是更新内容只是iglk对应第一章节的文章的链接,因此想学习的就关注这篇文章吧!

    看文章不易,写文章更不易,且看且珍惜

    章节说明

    下面是本人在学习Swift过程中写下的章节

    //: 一起来学习Swift 
    //: 环境:Xcode7.1
    //: 讲解人:黄仪标
    //: 微信公众号:iOSDevShares
    //: QQ群:324400294
    
    // 第一节:基础部分
    // 第二节:可选链
    // 第三节:字符串和字符
    // 第四节:集合类型
    // 第五节:控制流
    // 第六节:函数
    // 第七节:闭包
    // 第八节:枚举
    // 第九节:结构体
    // 第十节:类
    // 第十一节:内存管理
    // 第十二节:异常处理
    // 第十三节:扩展
    // 第十四节:协议
    // 第十五节:访问控制
    // 第十六节:泛型
    
    // 扩展部分
    
    // 第十七节:模式
    // 第十八节:运行时机制
    // 第十九节:Swift指针
    // 第二十节:Swift修饰特性
    // 第二十一节:Swift常用设计模式

    第一节:基础部分

    请阅读[第一节:Swift基础部分]http://mp.weixin.qq.com/s?__biz=MzIzMzA4NjA5Mw==&mid=400394227&idx=1&sn=6202024edb82d7dadf0b8b87071bc6e3#wechat_redirect

    第二节:可选链

    请阅读[第二节:Swift可靠链]http://mp.weixin.qq.com/s?__biz=MzIzMzA4NjA5Mw==&mid=400402719&idx=1&sn=bd0f055b55702aafdb88fe51b1031341#wechat_redirect

    第三节:字符串和字符

    请阅读[第三节:Swift字符串和字符]http://mp.weixin.qq.com/s?__biz=MzIzMzA4NjA5Mw==&mid=400428841&idx=1&sn=7b4756dc3cc8afd885b3fe51692d74a3#wechat_redirect

    关注我

    公众号搜索「iOS开发技术分享」快速关注微信号:iOSDevShares QQ群:324400294

    image

    展开全文
  • Swift教程(一)

    2015-07-30 13:48:09
    目录 基础部分 常量和变量 声明常量和变量 类型标注 常量和变量的命名 输出常量和变量 注释 分号 整数 整数范围 Int UInt 浮点数 类型安全和类型推断 数值型字面量 数值型类型转换 ...何时使用断言

    基础部分

    常量和变量

    声明常量和变量

    常量和变量必须在使用前声明,用let声明常量,用var声明变量。

    let a = 10
    var b = 0

    类型标注

    var message: String

    常量和变量的命名

    let π = 3.141592654
    let 你好 = "你好,世界。"
    let ☏ = "110"

    下面的例子中,friendlyWelcomeHello!变为Hi

    var friendlyWelcome = "Hello!"
    friendlyWelcome = "Hi"

    但是下面这段代码,在编译时会报错。

    let languageName = "swift"
    languageName = "Objective-C"
    // 因为languageName是常量,其值不可改变。

    输出常量和变量

    println(friendlyWelcome)
    // 输出“Hi”
    
    println("this is a string")
    // 输出“this is a string”

    下面这段代码会告诉你字符串插值怎么使用。

    println("The current value of friendlyWelcome is \(friendlyWelcome)")
    // 输出“The current value of friendlyWelcome is Hi”

    注释

    //这是一个单行注释
    
    /*
    这是一个
    多行注释。
    */

    分号

    如果你打算在同一行写多条独立的语句,那么分号是必须的,否则,分号不是必须的。

    整数

    整数范围

    let maxValue = UInt8.max  // 255
    let minValue = UInt8.min  // 0

    Int

    在32位平台上,IntInt32长度相同。
    在64位平台上,IntInt64长度相同。

    UInt

    一般情况下不推荐使用UInt。

    浮点数

    Double表示64位浮点数,当你需要存储很大或者很高精度的浮点数时请使用此类型。
    Float表示32位浮点数。精度要求不高的话可以使用此类型。

    类型安全和类型推断

    Swift是类型安全的,它在编译时进行类型检查,把不匹配的类型标记为错误,可以让你再开发的时候尽早发现并修复错误。

    let meaningOfLife = 42
    // meaningOfLife会被推测为Int类型

    如果你没有给浮点字面量标明类型,Swift会推断你想要的是Double:

    let pi = 3.14159
    // pi会被推测为Double类型

    当推断浮点数的类型时,Swift总是会选择Double而不是Float
    如果表达式中同时出现了整数和浮点数,会被推断为Double类型。

    let anotherPi = 3 + 0.14159
    // anotherPi 会被推测为Double类型

    数值型字面量

    整数字面量可以被写作:

    • 一个十进制数,没有前缀
    • 一个二进制数,前缀是0b
    • 一个八进制数,前缀是0o
    • 一个十六进制数,前缀是0x
      下面的所有整数字面量的十进制都是17:
    let decimalInteger = 17
    let binaryInteger = 0b10001
    let octalInteger = 0o21
    let hexadecimalInteger = 0x11

    浮点字面量还有一个可选的指数,在十进制浮点数中通过大写或者小写的e来指定,在十六进制浮点数中通过大写或者小写的p来指定。
    如果一个十进制数的指数为exp,那么这个数相当于基数和10^exp的乘积:

    • 1.25e2表示1.25 * 10^2,等于125.0
    • 1.25e-2表示1.25 * 10^-2,等于0.0125
      如果一个十六进制的指数为exp,那么这个数相当于基数和2^exp的乘积:
    • 0xFp2表示15 * 2^2,等于60.0
    • 0xFp-2表示15 * 2^-2,等于3.75
      下面这些浮点字面量都等于十进制的12.1875
    let decimalDouble = 12.1875
    let exponentDouble = 1.21875e1
    let hexadecimalDouble = 0xC.3p0

    数值类字面量可以包括额外的格式来增强可读性。整数和浮点数都可以添加额外的零并且包含下划线,并不会影响字面量:

    let paddedDouble = 000123.456
    let oneMillion = 1_000_000
    let justOverOneMillion = 1_000_000.000_000_1

    数值型类型转换

    整数转换

    let cannotBeNegative: UInt8 = -1
    // UInt8类型不能存储负数,所以会报错
    let tooBig: Int8 = Int8.max + 1
    // Int8类型不能存储超过最大值的数,所以会报错

    整数和浮点数转换

    let three = 3
    let point = 0.14159
    let pi = Double(three) + point
    // pi等于3.14159,所以被推测为Double类型

    类型别名

    typealias AudioSample = UInt16
    var maxAmplitudeFound = AudioSample.min
    // maxAmplitudeFound现在是0

    布尔值

    let orangs = true
    let turn = false

    当你在编写条件语句比如if语句的时候,布尔值非常有用。

    if turn {
        println("ok");
    } else {
        println("no");
    }

    元组

    元组把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。

    let http404Error = (404, "Not Found")
    // http404Error的类型是(Int, String),值是(404, "Not Found")

    可以将一个元组的内容分解成单独的常量和变量,然后就可以正常使用它们了:

    let (statusCode, statusMessage) = http404Error
    println("The status code is \(statusCode)")
    // 输出 "The status code is 404"
    println("The status message is \(statusMessage)")
    // 输出 "The status message is Not Found"

    如果只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记:

    let (justTheStatusCode, _) = http404Error
    println("The status code is \(justTheStatusCode)")
    // 输出 "The status code is 404"

    此外,还可以通过下标来访问元组中的单个元素,下标从零开始:

    println("The status code is \(http404Error.0)")
    // 输出 "The status code is 404"
    println("The status message is \(http404Error.1)")
    // 输出 "The status message is Not Found"

    可以在定义元组的时候给单个元素命名:

    let http200Status = (statusCode: 200, description: "OK")

    给元组中的元素命名后,可以通过名字来获取这些元素的值:

    println("The status code is \(http200Status.statusCode)")
    // 输出 "The status code is 200"
    println("The status message is \(http200Status.description)")
    // 输出 "The status message is OK"

    可选类型

    举一个例子,Swift的String类型有一个叫toInt的方法,作用是将一个String值转换为一个Int值,然而不是所有的字符串都可以转换为整数。字符串"123"可以被转换为数字123,但是字符串"Hello,World"不行。

    let possibleNumber = "123"
    let convertedNumber = possibleNumber.toInt()
    // convertedNumber被推测为类型"Int?"

    使用可选类型来处理值可能缺失的情况。一个可选的Int被写作Int?而不是Int。问号暗示包含的值是可选类型,也就是说可能包含Int值也可能不包含值。

    if语句以及强制解析

    可以使用if语句来判断一个可选是否包含值。如果可选类型有值,结果是true,如果没有值,结果是false
    当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个(!)来获取值。这个惊叹号表示我知道这个可选有值,请使用它,这被称为可选值得强制解析。

    if convertedNumber != nil {
        println("\(possibleNumber) has an integer value of \(convertedNumber)")
    } else {
        println("\(possibleNumber) could not be converted to an integer")
    }
    // 输出 "123 has an integer value of 123"

    可选绑定

    使用可选绑定来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。可选绑定可以用在ifwhile语句中来对可选类型的值进行判断并把值赋给一个常量或者变量。

    if let actualNumber = possibleNumber.toInt() {
        println("\(possibleNumber) has an integer value of \(actualNumber)")
    } else {
        println("\(possibleNumber) could not be converted to an integer")
    }
    // 输出 "123 has an integer value of 123"

    nil

    可以给可选变量赋值为nil来表示它没有值:

    var serverResponseCode: Int? = 404
    // serverResponseCode包含一个可选的Int值404
    serverResponseCode = nil
    // serverResponseCode现在不包含值

    nil不能用于非可选的常量和变量。如果你的代码中有常量或变量需要处理值缺失的情况,请把它们声明成对应的可选类型
    如果你声明一个可选常量或变量但是没有赋值,它们会自动被设置为nil:

    var surveyAnswer: String?
    // surveyAnswer被自动设置为nil

    Swift的nil和Objective-C中的nil并不一样。在Objective-C中,nil是一个指向不存在对象的指针。在Swift中,nil不是指针,它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为nil,不只是对象类型。

    隐式解析可选类型

    有时候在程序架构中,第一次被赋值之后,可以确定一个可选类型总会有值。在这种情况下,每次判断和解析可选值是非常低效的,因为可以确定它总是会有值。
    这种类型的可选状态被定义为隐式解析可选类型,把想要用作可选的类型的后面的问号改成惊叹号来声明一个隐式解析可选类型。

    let possibleString: String? = "An optional string."
    println(possibleString!) //需要惊叹号来获取值
    // 输出 "An optional string." 
    let assumedString: String! = "An implicitly unwrapped optional string."
    println(assumedString) //不需要惊叹号
    // 输出 "An implicitly unwrapped optional string."

    你仍然可以把隐式解析可选类型当做普通可选类型来检查并解析它的值:

    if assumedString {
        println(assumedString)
    }
    // 输出 "An implicitly unwrapped optional string."

    你也可以在可选绑定中使用隐式解析可选类型来检查并解析它的值:

    if let definiteString = assumedString {
        println(definiteString)
    }
    // 输出 "An implicitly unwrapped optional string."

    断言

    使用断言进行调试

    let age = -3
    assert(age >= 0, "A person's age cannot be less than zero")
    // 因为 age < 0, 所以断言会触发

    断言信息如果不需要,可以被省略:

    assert(age >= 0)

    何时使用断言

    当条件可能为假时使用断言,但是最终一定要保证条件为真,这样你的代码才能继续运行。断言的适用情景:

    • 整数类型的下标索引被传入一个自定义下标脚本实现,但是下标索引值可能太小或太大。
    • 需要给一个函数传入一个值,但是非法的值可能导致函数不能正常执行。
    • 一个可选值现在是nil,但是后面的代码运行需要一个非nil值。
    展开全文
  • 资源名称:Swift教程大合集(文档 视频)资源目录:【】00Swift开发入门【】Swift教程-代码【】The Swift Programming Language中文完整精校版【】TheSwiftProgrammingLanguage【】【Swift教程】01Swift简介(文件...
  • 本人最近开始学习有关Swift这个新东东,由于没有项目支撑,只能通过官方文档进行自学,精简的看了Swift官方文档,感觉理解起来还是比较简单,于是突发奇想,想把官方object-c的sample进行改造,使用Swift完成重点...

    一、文章简介

    本人最近开始学习有关Swift这个新东东,由于没有项目支撑,只能通过官方文档进行自学,精简的看了Swift官方文档,感觉理解起来还是比较简单,于是突发奇想,想把官方object-c的sample进行改造,使用Swift完成重点sample的改造,并对在改造过程中出现的问题进行分析,由于是初学,希望各类大牛能够指出其中错误,我会及时修改。预计每天更一篇,争取本周末搞定。

    首先想改造的就是笔者最关心的tableView和CG,最好的例子莫过于Element。下面章节将介绍一下这个例子(由于时间久远,对于该例子的介绍可能有出入,会在改造过程中及时跟新)。本文使用xcode 6.0.1。

    完整源代码下载(2014年11月6日更新,完美匹配swift,能够完美运行)

    二、Sample说明

    本章重点主要介绍并分析Element这个例子的相关内容,帮助大家回忆这个例子的细节。

    1、功能介绍

    本例以table罗列了元素周期表的元素,并通过tab分了4个纬度(按名称排序、按编号排序、按简称首字母分组并按名称排序、按状态分组并按名称排序)进行排序或分组,点击table的cell能够翻页查看元素的详细信息。具体如下图(这是我按照sample略作修改后的效果,本人比较懒,省略了sample中很多重复性的内容,并将文件结构按照我的习惯做了调整)。如图(1-3图是tab+table多维度展示数据,4-6图是明细页面)。  

         

    2、技术概述

    1.常用的tabView、tableView等常用组件的使用,其中包含了table分组、自定义cell、以及segue的相关应用、View的动画效果等。

    2.CG的很多应用,主要体现在定位绘图、制作阴影等。

    3.plist及xcassets的简单使用

    3、实现过程

    非常简单但内容丰富的实例,分解为以下步骤。

    1.绘制页面及关系
    通过storyboard绘制应用的页面关系并自定义部分类,其中包含分组页签tabView、导航栏navigation、展示列表tableView(其中还有列表字段cell)、明细展示页面detailView。

    2.构造数据对象及对应的service
    创建化学元素的实体对象,并创建对应的操作服务,该服务通过plist组装和处理数据对象集合。
    3.列表页面信息加载
    创建tableVIew数据协议,并按不同维度实现,初始化页面时通过化学元素对象服务组装页面需要显示的内容。

    4.明细页面信息展示
    将选中行数据传入datailVIew页面,该页面通过CG绘制需要展示的信息(需要绘制正反2个),并加入切换动画和阴影。

    展开全文
  • Swift新手教程

    2020-03-04 17:17:30
    1.首先要下载安装两个软件,分别是vscode和swift。 如图: 下载完成后,将vscode切换成中文版,切换方式为:输入Ctrl+Shift+P,在弹出的页面输入configure Display Language,点击中文(简体),最后点击Install,...

    1.首先要下载安装两个软件,分别是vscode和swift。
    如图:
    在这里插入图片描述

    在这里插入图片描述
    下载完成后,将vscode切换成中文版,切换方式为:输入Ctrl+Shift+P,在弹出的页面输入configure Display Language,点击中文(简体),最后点击Install,重新打开软件即可。
    2.在非系统盘中建立一个文件夹,任意文件名。
    3.打开vscode,输入代码,然后点击左上角文件—新建文件夹—你刚才创建的文件夹,并修改后缀为swift。
    在这里插入图片描述
    保存后你的界面应该是:
    在这里插入图片描述
    4.打开swift软件,点击Select File,选中helloworld.swift,然后点击Compile,最后点击Run。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • swift 教程

    2017-05-18 18:36:24
    http://swift.gg https://github.com/SwiftGGTeam/the-swift-programming-language-in-chinese/blob/gh-pages/source/chapter2/01_The_Basics.md swift官方文档:https://swift.org/documentation/ 斯坦福...
  • swift教程

    2016-09-03 19:31:19
    http://www.runoob.com/swift/swift-tutorial.html
  • 【ios】swift教程

    千次阅读 2019-06-12 08:10:10
    学习swift地址 https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html 在wwdc2019上看到了苹果公司关于swiftui的介绍,感觉这就是未来。 Swift编程语言简介 Swift命令行操作 Swift defines away large ...
  • 构建控制层 本章节主要来构建个功能的控制层,为之前已经创建好的storyboard中页面的自定义controller添加对应功能。 1.TabBarViewController 该控制器按照需求通过数据层服务类PKOElementDataService所构建的...
  • 芒果iOS开发之Swift教程01-Swift基础

    千次阅读 2016-09-12 11:58:08
    苹果在2014年WWDC(苹果开发者大会)发布了Swift,用于编写iOS,Mac OS X和watchOS应用程序。Swift 采用安全的编程模式并添加了很多新特性,而且对于熟悉OC人开发者来说学习Swift也很简单。是不是已经迫不及待要体验...
  • 在xcode中,有一个可视化的工具,那就是playground,它能让你一边编写,一边查看输出的变量,类似...对于Swift初学者来说,它简单易用,可以实时预览代码效果,非常适合学习Swift这门语言。在日常开发中,playgroun...
  • 苹果官方swift教程

    2015-11-08 14:31:31
    swift官方教程(CocoaChina翻译)
  • 上一篇文章讲解了怎么使用Swift REPL,进行swift的编程学习。  在xcode中,其实有一个更加可视化的工具,那就是playground,它能让你一边编写,一边查看输出的变量。对于语言的学习,实在有莫大的好处。 所以对于...
  • 加上写博文的时间,用了前前后后一周左右的时间,每晚2小时左右,完成了这个改造,由于我是第一次碰swift,有些东西还用不顺手,用时比较长。期间还简单学习了一下swift基本语法和部分用法。下面主要说一下我对swift...
  • 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍《The Swift Programming Language》中摘录和提取而成。希望对各位的iOS&OSX开发有所帮助。 Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-...
  • Swift教程之结构体

    2015-07-10 11:28:21
    import Foundation //结构体 struct Student { var name = "" var age = 0 func test() { print("test") ...//所有结构体都有一个自动生成的成员逐一构造器,用于初始化新结构体实例中成员的属性 ...
  • 说明Swift中引入了一个特别的类型选配(options)型, 我们用它来处理一些不存在的值, 选配(Options)或者说有一个值,它等于X 或者是到底有没有值可言可选 (Optional ) 是一种自己所有的,实际上是 Swift 新的超能力...
  • Swift 初见 本页内容包括: 简单值(Simple Values)控制流(Control Flow)函数和闭包(Functions and Closures)对象和类(Objects and Classes)枚举和结构体(Enumerations and Structures)接口和扩展...
  • Swift语言快速入门(内部资料)   淘宝店地址:http://item.taobao.com/item.htm?spm=686.1000925.1000774.13.rwsJRp&id=40270592399 试读下载地址:...前言Swift教程Swift语言快速
1 2 3 4 5 ... 20
收藏数 21,146
精华内容 8,458
关键字:

swift教程