swift 订阅
Swift,苹果于2014年WWDC苹果开发者大会发布的新开发语言,可与Objective-C共同运行于macOS和iOS平台,用于搭建基于苹果平台的应用程序。Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。 [1]  2015年12月4日,苹果公司宣布其Swift编程语言开放源代码。长600多页的The Swift Programming Language [2]  可以在线免费下载。 展开全文
Swift,苹果于2014年WWDC苹果开发者大会发布的新开发语言,可与Objective-C共同运行于macOS和iOS平台,用于搭建基于苹果平台的应用程序。Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。 [1]  2015年12月4日,苹果公司宣布其Swift编程语言开放源代码。长600多页的The Swift Programming Language [2]  可以在线免费下载。
信息
源    于
Objective-C
外文名
Swift
发布时间
2014年6月2日
发行组织
Apple
中文名
雨燕
参考语言
C,JavaScript,Python,Java
系    统
macOS,iOS,linux
SWIFT发展历史
2014-6-3 Swift于WWDC苹果开发者大会发布。 发布(6张) 2014-6-4 《Swift中文版》翻译组在github上进行协同翻译 [3]  。此项目开始不到一周就获得了1067个star。该项目的发起人是北航的大三学生 [4]  。2014-6-12《Swift中文版》第一版发布 [5]  。2015年12月4日,苹果公司宣布其Swift编程语言开放源代码 [3]  。长600多页的The Swift Programming Language [2]  可以在线免费下载。同时可以在苹果官方Github下载 [3]  。2020年最新一期的编程语言排行榜显示,Swift从第15名上升至第9名。 [6] 
收起全文
精华内容
参与话题
问答
  • swift基础视频教程

    千人学习 2015-12-30 16:14:11
    Swift,苹果于2014年苹果开发者大会发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。 Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力...
  • Swift中文教程DOC版

    千次下载 热门讨论 2014-06-04 17:51:49
    Apple Swift编程语言入门教程 中文版本文档。主要通过实例讲解基础的语法
  • SwiftUI入门到实战课程

    千人学习 2019-12-10 16:14:27
    SwiftUI是一种创新、简单的iOS开发中的界面布局方案,可以通过Swift语言的强大功能,在所有的Apple平台上快速构建用户界面。 仅使用一组工具和API为任何Apple设备构建用户界面。 SwiftUI具有易于阅读和自然编写的...
  • Swift5语言入门实例教程

    千人学习 2019-11-27 13:12:39
    包含常量与变量、基本数据类型,以及Swift语言中的新数据类型—元组型和可选型的内容。同时还讲解了运算符和表达式、流程控制语句、字符和字符串、集合类型、函数和闭包。此外,Swift面向对象的枚举、结构体、类,...
  • Swift中文版和英文版教程合集

    千次下载 热门讨论 2014-06-05 10:02:47
    有人称Swift是最优秀的语言。这是因为很多脚本语言都本身都存在着难以处理的短板,比如Objective-C的优势在于测试设备的性能,用以开发更精细的应用,但是相对而言编程时遇到的问题也更复杂;又如Python,虽说编程很...
  • 本文介绍几点Swift 3.0相对于Swift 2.0的一些改变和使用方法 关于Swift 3.0的具体使用指南大家可以去阅读Swift 3.0中文文档(Swift 3.0 中文文档)和Swift 3.0官网文档(Swift 3.0 官网文档)

    关于Swift 3.0的具体使用指南大家可以去阅读Swift 3.0中文文档(Swift 3.0 中文文档)和Swift 3.0官网文档(Swift 3.0 官网文档

    1.首当其冲的就是闭包的修改。

    升级完Xcode8之后根据提示会默认帮你进行一些修改。但是修改完成还有500+多个错误很大一部分是闭包的修改,我的内心是这样的。

    在Swift2.3中我们写闭包是这样写:

        //Swift 2.2
        typealias detailCollectBlock = (state:Bool)->Void
    
        var detailCollect:detailCollectBlock?
    
        func detailCollect(detailCollect:detailCollectBlock)
        {
            self.detailCollect = detailCollect
        }
    
        //在需要的时候调用
        self.detailCollect?(state:true)
    
        //
        controller.detailPraise({ (state) in
            model.isPraise = (state ? "1" : "0")
                })
        //Swift3中的 使用方法1 
        typealias detailCollectBlock = (Bool)->Void
    
        var detailCollect:detailCollectBlock?
    
        func detailCollect(detailCollect:@escaping detailCollectBlock)
        {
            self.detailCollect = detailCollect
        }
        //在需要的时候调用
        self.detailCollect?(true)
    
        //在上页面回调接收的时候的用法
        controller.detailPraise(detailPraise: { (<#Bool#>) in
             model.isPraise = (state ? "1" : "0")
                })
    
        //使用方法2
        typealias detailCollectBlock = (_ state:Bool)->Void
    
        var detailCollect:detailCollectBlock?
    
        func detailCollect(_ detailCollect:@escaping detailCollectBlock)
        {
            self.detailCollect = detailCollect
        }
    
        //在需要的时候调用
        self.detailCollect?(state:true)
    
        //
        controller.detailPraise({ (state) in
            model.isPraise = (state ? "1" : "0")
                })

    这个时候大家应该就可以从代码中发现,swift3中需要定义闭包的时候不需要命名参数名,只需要告诉参数类型即可.

    现在迁移我们也可以使用方法2,这时我们的参数在使用时还是省略的(就和2.2时使用相同),外部调用闭包的时候就不需要在修改了。这样可以减少很多工作量,因为项目中的闭包实在是太多了..

    如果闭包不是在当前作用域内执行而是还要继续传递到别的函数里的话, 那就必须加上@escaping,本身的意思是逃逸的

    别接收回调的地方也和swift2.2不同,回调方法中会有block的名字,但是没有参数名了(方法2中就没有名字啦),只有参数的类型,我们需要自己来定义参数的名称.

    详情见SE-0103SE-0118

    2.在Swift2.3中我们函数在被调用时的第一个参数名会被省略,除非在前面在此定义eq:

    //这样才会在调用的时候显示参数名 swift2.2时
    func addCollect(detailId detailId)

    在Swift3中我们不需要在这样做了。会一直带有第一个参数名

    3.UIControlState等的表示状态的常量 都变成了首字母小写

    //Swift2.2
    self.toolsView?.praiseButton.setImage(UIImage.init(named: "tool_icon_like_normal"), forState: .Normal)
    
    self.phone?.componentsSeparatedByString() //swift2.2
    
    //swift3
    self.toolsView?.praiseButton.setImage(UIImage.init(named: "tool_icon_like_normal"), for: .normal)
    
    self.phone?.components(separatedBy: "-") //swift3

    这样做也是为了脱离OC冗长的方法命名,精简了语意,但是可读性还需要长时间的检验吧

    3.使用NSDictionary的修改

    dict.setObject(true, forKey: "state")
    dict.setObject(num, forKey: "key")

    在之前我们一直使用NSDictionary(<font color=gray>因为从OC转过来感觉还是NSarray和NSDictionary用起来顺手的</font> ),用来设置key的时候。现在需要添加NSCopying ,所以我都改成Dictionary啦哈哈。现在我们也应该在之后写代码的时候避免使用NSString,NSArray, NSDictionary等因为现在更加不方便了~~

    4.泛型

    //swift2.2
     var selectResult:PHFetchResult?
    
    //swift3
     var selectResult:PHFetchResult<PHAsset>?

    这个是项目中图片管理器所用到的,现在就是需要在PHFetchResult后面告诉它是什么类型,也可以是AnyObject
    这个后面还需要详细的介绍。给自己挖个坑

    5.没有了CGRectMake 改用CGRect.init来初始化或者我们写一个他的扩展.来模拟之前的CGRectmake

    //用来代替,修改的CGRectMake
    func CGRectMake(_ x:CGFloat,_ y:CGFloat,_ width:CGFloat,_ height:CGFloat)->CGRect
    {
        return CGRect.init(x: x, y: y, width: width, height: height)
    }

    6.关于颜色的初始化方法UIColor.color都去掉了括号,并且color的后缀页去掉了,新添加了Url类,也是为了脱离OC的NSUrl吧.

    7.GCD的改变 更加Swift化.

    DispatchQueue.main.async {
        let controller = LoginViewController()
        self.present(controller, animated: true, completion: nil)
                    }

    其实GCD的用法没有太多的改变,只是写法变的更加Swift,去掉了之前C语言的形式,多写读多熟悉应该就好了。

    9.NSString操作的变化

    //swift2.2
       let ch = (pinYinString as NSString).character(at: 0)
    //swift3
        let ch=pinYinString?.unicodeScalars[(pinYinString?.unicodeScalars.startIndex)!]

    因为我需要取到拼音的首字母来进行排序,所以需要获取到首字母的ASCII码。所以使用NSString更方便。但是现在不能这样用了,所以我们只能使用Swift中的这个unicodeScalars来获取啦。

    8.枚举变成了小写,自己定义的时候是大写当他变成.语法的时候Xcode页把它变成了小写

    展开全文
  • 本文主要介绍如何在Swift项目中使用OC的文件以及在OC项目中使用Swift文件。

    本文主要介绍如何在Swift项目中使用OC的文件以及在OC项目中使用Swift文件

    一、在Swift项目中使用OC文件

    ① 首先提供最原始的方法,这也是本质:

    01 创建一个桥接文件,也就是一个OC的 .h文件,一般来说以项目名-Bridging-Header.h 命名

    02 将需要导入到Swift项目中的OC文件的头文件导入到桥接文件

    03 配置桥接文件(和OC中配置.pch文件很类似):


    我们往里面写的是相对路径,默认是找到项目可执行文件的一层,从这层开始往下一直填写到桥接文件的一层。


    ② 简便方法

    01 导入/ 创建 OC文件,导入/ 创建 OC文件的同时,会提示创建桥接文件,此时点击创建,会自动帮我们完成创建、配置桥接文件的工作

    02 将需要在Swift项目中使用的OC文件的头文件导入到桥接文件


    需要特别注意:如果是用CocoaPods导入的OC框架,我们直接将主头文件导入到所需的项目中即可,不需要为其配置桥接文件。


    二、在OC项目中使用Swift文件

    这个过程更加的简单。

    01 将Swift文件内需要在OC项目中使用的 类/ 属性/ 方法 用public修饰,没有修饰的 类/ 属性/ 方法 在外部的OC文件中是无法使用的

    02 在需要使用Swift文件的OC文件内导入头文件 #import "项目名-Swift.h"


    需要特别注意:项目名称只需用大小写字母和数字,用其他特殊符号易出错

    展开全文
  • Swift入门》关于Swift

    千次阅读 2016-04-05 19:44:41
    Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 使用安全的编程模式并添加了很多新特性,这将使编程更简单,扩展性更强,也更有趣。Swift 是使用基于安全、性能和软件设计模式的现代方法生成的...

    关于Swift

    Swift 是一门新的编程语言,用于编写 iOS 和 OS X 应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 使用安全的编程模式并添加了很多新特性,这将使编程更简单,扩展性更强,也更有趣。

    Swift 是使用基于安全、性能和软件设计模式的现代方法生成的通用编程语言。

    Swift 项目的目标是创建用于系统编程最好的可用语言,包括移动和桌面应用程序,扩展到云服务。最重要的是,Swift的目的是使开发人员编写和维护修正程序更加容易。为了实现这一目标,我们认为,最明显的方式来写SWIFT代码也必须是:

    安全:写代码的最明显的方式也应该表现在一个安全的方式。未定义行为是安全的大敌,并且开发人员的失误应捕获软件在生产之前。选择了安全有时意味着Swift会觉得过于严格,但我们相信,清晰度,从长远来看可以节省时间。

    快速:Swift有希望成为基于C的语言(C,C和Objective-C)的替代品。因此,Swift必须在大多数任务中的表现与其它语言有可比性。性能也必须是可预测的、 一贯的,不是短时间的快过后又需要清理。有许多具有新特性的语言 - 速度快是罕见的。

    表现力:Swfit吸取了几十年来在计算机科学进步中的语法,使用起来是一种快乐具有现代特色的开发人员的期望。但是Swift从未止步,我们监测语言进步拥抱新变化不断发展,使Swift越来越好。


    工具是雨燕生态系统的重要组成部分。我们力争在开发人员的工具很好地集成,快速构建,呈现优异的诊断,并启用互动发展经验。工具可以使编程像基于SWIFT的playgrounds在Xcode中,或是一个基于Web的REPL能够运行于Linux服务器端代码这么强大


    特性

    Swfit包括功能,使代码更易于读取和写入,同时也让开发人员在一个真正的系统编程语言所需的控制。Swfit支持推断类型使代码更清洁,不易发生错误,模块消除头,并提供命名空间。内存自动管理,你甚至不需要输入分号。Swfit也从其他语言借用,从Objective-C的提出了例如命名参数在干净的语法,使Swfit的API更易于阅读和维护表示。

    Swfit的功能旨在共同创造一个语言功能强大,但使用乐趣。Swfit的一些附加功能包括:闭包与函数指针元组和多个返回值泛型在一定范围内或集合快速,简洁的迭代支持方法,扩展和协议结构函数式编程模式,例如,地图和过滤器内置强大的错误处理具有先进的控制流基于 doguarddefer, 和 repeat 关键字。

    安全

    Swfit从一开始就设计成比基于C的语言更安全,并消除了不安全代码整个类。变量在使用前,数组总是初始化和整数检查溢出,内存自动管理。语法被调整到可以很容易地定义你的意图 - 例如,简单的三个字符的关键字定义一个变量(VAR)或常量(let)。

    另一个安全特性是,默认情况下Swfit对象永远是nil,并试图制造或使用一个 nil 对象将在编译时错误的结果。这使得编写代码更清洁,更安全,并防止运行时崩溃的常见原因。然而,有这样的情况,其中 nil 是合适的,并且对于这些情况夫特具有称为自选一个创新的特征。可选可能包含 nil,但Swfit的语法迫使你安全地使用它处理?以表明你理解的行为,并会安全地处理它的编译器。


    更多请参考:https://swift.org/about/



    展开全文
  • Swift泛型

    千次阅读 2016-03-06 20:14:56
    泛型是为Swift编程灵活性的一种语法,在函数、枚举、结构体、类中都得到充分的应用,它的引入可以起到占位符的作用,当类型暂时不确定的,只有等到调用函数时才能确定具体类型的时候可以引入泛型。泛型函数定义fun ...

    泛型是为Swift编程灵活性的一种语法,在函数、枚举、结构体、类中都得到充分的应用,它的引入可以起到占位符的作用,当类型暂时不确定的,只有等到调用函数时才能确定具体类型的时候可以引入泛型。

    泛型函数

    定义

    fun 函数名<T,S>(形参列表)->返回值类型
    {
         //函数体...
    }
    

    例子:

     func copyArray<T>(src:[T],inout dest:[T]) {
        for element in src
        {
         dest.append(element)
        }
    
         var arr=[1,2]
        copyArray([3,4], dest: &arr)
        print(arr)  
    

    在这里我们运用泛型为函数提供了一个T类型的占位符,这个占位符就可以在函数的实际调用中被替换成真是类型。

    结构体泛型

     struct WXRect<T>
    {
        var x:T
        var y:T
        var Add:(T,T)
            {
            return (self.x,self.y)
            }
     }
         let rect=WXRect<Double>(x: 20.0, y: 20.0)
        let (30.0,20.0)=rect.Add
        print("(\(x),\(y))")
    

    类中泛型

        class Swift<T> {
        var info:T
        init(info:T)
       {
        self.info=info
        }
    }
    
        var swift=Swift<String>(info:"Swift泛型")
        print("\(swift.info)真强大") 
    

    类型约束

    上面的例子中,泛型形参没有什么约束,我们可以对泛型传入任何值,但在实际中,或许有时候我们需要为泛型增加某些特定的约束。

    定义类型参数时增加一个限制,约束这个类型参数必须继承自特定的类,或遵守一个特定的协议或合成协议,这就叫做类型约束。

    语法格式:

    <类型形参1:父类,类型形参2:协议,类型形参3:protocol<协议1,协议2>,..>

    Where语句

    where语句要求一个关联类型遵循一个特定的协议,或那个特定的类型参数和关联类型可以是相同的

    <类型形参:父类型,类型形参2:协议,…where 条件>

    展开全文
  • 背景 WARNING ITMS-90725: "SDK Version Issue. This app was built with the iOS 11.3 SDK. Starting March 2019, all iOS apps submitted to the App Store must be built with the iOS 12.1 SDK or later, ...
  • Swift_3.0 相对于 Swift_2.2 版本发生了哪些的变化。本文件将以最直观的代码对比以及文字分析阐述。
  • Swift学习笔记 - Swift属性只读

    千次阅读 2016-10-30 19:51:47
    在OC中我们经常用到只读属性,用readonly修饰一下就行了,但在Swift中已经不是这样修饰的了,下面记录一下Swift中只读属性的使用 在OC中的只读://只读属性 @property(readonly, nonatomic) NSObject *wcl;在Swift中...
  • 本人最近开始学习有关Swift这个新东东,由于没有项目支撑,只能通过官方文档进行自学,精简的看了Swift官方文档,感觉理解起来还是比较简单,于是突发奇想,想把官方object-c的sample进行改造,使用Swift完成重点...
  • 完美解决swift代码不能自动提示和补全
  • Swift Playground精讲

    万次阅读 2017-01-01 16:49:16
    对于Swift初学者来说,它简单易用,可以实时预览代码效果,非常适合学习Swift这门语言。在日常开发中,playground可以进行快速的原型开发和试错。当然,playground支持markup标注,用来Swift相关的书籍也不错。 基础...
  • 原文:http://www.coolketang.com/staticCoding/5a9923b4ac502e5d51cb3dc6.html1. Playground是苹果推出的一款用来学习、演示Swift语言的实用工具,本节课将为您演示它的使用方法。首先点击欢迎面板中的[以...
  • 本文大致讲述在项目中 Swift 和 Javascript 如何相互调用,集成多个 Demo。快速上手 WebViewJavascriptBridge 框架。
  • 不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进行强制解包。举个例子,我在 OC 中定义这样一个变量:@property (nonatomic, copy...
  • ios swift 实现饼状图进度条 // // ProgressControl.swift // L02MyProgressControl // // Created by plter on 7/29/14. // Copyright (c) 2014 jikexueyuan. All rights reserved. // import UIKit class ...
  • Swift 3.0介绍

    千次阅读 2017-02-22 21:41:39
    概述我接触swift是从2.0开始,当时出于对ios的好奇,加上官方的大力推荐,于是扎入了ios的怀抱,从1.2发展到了今天的3.0.1,这期间由于Swift目前还在发展阶段并不能向下兼容,这也造成部分我们2.x开发的版本在新版本...
  • Swift——(五)Swift中的那些默认值

    千次阅读 2014-06-23 22:59:21
    AlienTech for better life!~
  • KVO and Swift

    千次阅读 2016-07-18 09:55:25
    不像Objective-c中的类,Swift类对于KVO并没有原生的支持,不过你可以在类型安全的前提下使用属性观察者轻松的完成相同的目标. 不管如何,从NSObject类派生出的类是支持KVO的,如果你想在不使用属性观察者的情况下使用...
  • 第一种 for 循环方式 第二种 for in方式 第三种 索引-值方式enumerate()第一种 for循环方式 let arr:Array<Int> = [1,2,3,4,6,7,8,9,22] let legh = arr.count for var i = 0;i <...
  • 调用Alamofire.request返回的json是这样的: { "\U4f1a\U5458ID" = 40; "\U5173\U5361ID" = 4; "\U540d\U79f0" = "\U65b0\U6982\U5ff5\U82f1\U8bed\U7b2c\U4e00\U518c"; "\U5c01\U9762" = ...是swift 2.0
  • Swift快速入门(一)第一个Swift程序

    万次阅读 2016-01-23 14:30:02
    本系列只是一个Swift快速入门的教程,并没有详尽的介绍SwiftSwift也并不是一个简单的编程语言,所以要想详尽的系统的学习Swift,本系列并不适合你,此系列只是让开发者可以快速的用Swift来进行开发。另外学习本...
  • swift3.0之后,GCD的语法发生了翻天覆地的变化,从过去的c语法变成了点语法,下面是变化之后用GCD实现计时器的方法: 先贴代码:// 定义需要计时的时间 var timeCount = 60 // 在global线程里创建一个时间源 let ...
  • Swift 2.1 基础实操高清视频教程

    千人学习 2015-12-09 16:57:30
    我们通过一些代码片段学习Swift中的constant和variable、各种基本types和tuple以及Swift中重要的语言特性之一: type inference。并录制了泊学高清视频,同步搭配了泊阅文档,为开发者朋友们的学习提供了一种全新的...
  • 本视频是基于Swift2.x版本录制,与图书《从零开始学Swift》语法篇同步讲解。是学习Swift视频,进行iOS开发的知识。代码下载地址 http://51work6.com/swiftbook1.php 主要内容有:总结了Swift编码规范,包括命名规范...
  • Swift——(三)Swift中下划线的妙用

    万次阅读 2014-06-13 21:39:52
    AlienTech for better life!~
  • Swift的开发环境可以使用苹果平台(OS X)或Linux系统(Ubuntu),这里介绍在我在Ubuntu 14 server下安装Swift运行环境的过程1、安装所需的依赖项$ sudo apt-get install clang libicu-dev我是先安装的clang,中间会...

空空如也

1 2 3 4 5 ... 20
收藏数 83,715
精华内容 33,486
关键字:

swift