swift闭包

Swift-001-Swift简介及基础语法

若如初见. 提交于 2020-03-24 02:17:32
/*--> */ /*--> */ 1. Swift简介 2014年WWDC 发布的新开发语言,可与OC共同运行于Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。 swift2.0之后的语法则趋于稳定,2017年发布的swift4.0虽有改动,但也只是增添了一些新特性。这些新特性需要在Xcode9上运行才能显示出效果。值得一提的是它支持unicode9,也就是说,可以用某些图片图标来充当变量。 /*--> */ /*--> */ 2.特点 : ① 快速 , 安全 ,使用安全的编程模式并添加很多新特性,使编程更简单 , 扩展性更强 ( 支持Cocoa 和 Cocoa Touch框架 )。 ② 取消了OC指针和其他不安全访问 的使用.变量总是初始化之前使用, 数组和整数检查溢出 ,内存自动管理 。 ③支持 代码预览 , 允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果 ④舍弃OC 早起的SmallTalk的语法,全面改为打点调用( 使用点语法调用属性或者函数 ). ⑤提供了 类似Java的命名空间 (name space)/ 泛型 (generic)/ 运算对象重载 (operator overloading ⑥ 语法非常简洁 , 让编程的流程大大缩短、 简化、高效 、强大. ⑦去掉NS前缀 /*--> */ /*--> */ 3

Swift高速入门之函数

岁酱吖の 提交于 2020-03-22 09:30:01
函数 看一个函数的样例: func addNumbers( let a:Int,let b:Int)->Int{ return a+b; } 实现两个数相加。函数必须以func开头,后面是函数名。小括号中是參数。箭头后面是返回类型。Swift中没有int之类的基本类型了。连表示数字都用类:Int。 由于參数没有在函数内改变值,所以參数定义成常量。 不论是类的方法或全局函数,语法一样。 不像ObjC那样,全局函数是C语法。类方法是ObjC语法。 这样调用它: let r = addNumbers(3, b: 4) 能够看到从第二个參数開始,须要带參数名。 函数要通过return返回多个值在ObjC中是做不到的,当然你能够放到一个数组或字典中把这个数组或字典返回。返回后再取出来也比較麻烦。 假设你写的函数是给别人用的话,还要凝视说明确,里面的各项数据是怎样排列的。 但如今语法已经支持了:用元组! 以下这个样例是取得两个数相除的商和余数: func divNumbers(a:Int,b:Int)->(shang:Int,yu:Int){ return (shang:a/b,yu:a%b) } 箭头后是返回值类型,看起来像參数,实际上就是定一了一个元组类型。 return时。定义了一个元组对象,填入了两个数据的值。 调用此函数: let ret = divNumbers(7, b: 3)

快速发展的Swift是否将淘汰Objective-C?

巧了我就是萌 提交于 2020-03-17 08:23:59
随便拉上一个果粉说说这一年来苹果公司的成就,Apple Watch肯定排第一,再下来是iPhone破销量纪录及苹果30亿美元收购Beats Electronics,消息灵通的人说不定还会提到Apple Car。同样的问题摆在iOS开发者面前的话,去年苹果公司推出的新一代编程语言,诸多铁杆果粉早有耳闻的Swift必然在排行榜之列。 而如今,尽管距离2015年苹果全球开发者大会(WWDC 2015)开幕还有好几个小时,却已经有不少的参会开发者在旧金山的Moscone West会场外排队等候入场。在今年的WWDC上,每天将有8个小时的Swift实验室时间,苹果工程师团队将讲授Swift的用法,并解答开发者在Swift开发中遇到的问题,同时针对Swift专题,也将有4场演讲专门呈现,届时,Swift必将成为众多参会者讨论的热点。 一年前的WWDC上,由苹果软件工程高级副总裁Craig Federighi为Swift揭幕,演示了类型推理、闭包和多个命名空间等功能。开发者们屏住了呼吸,一时间爆发出热烈的掌声。他还开玩笑说:“好多人压根儿不信Swift有多好,还说着‘那些人在胡扯些什么呀’的话”。 在发布仅7个月后,Swift便已成为 Red Monk编程语言排行榜 上第22位最受欢迎的编程语言,并且将来很有可能代替Objective-C,排名上升至第3位。TIOBE

Swift3.0语法2

我只是一个虾纸丫 提交于 2020-03-11 12:39:02
(一)可选项: (二)懒加载: 在 OC 开发中,懒加载一般自定义控件。在 S wift中,懒加载还是需要用的,可以保证控件延迟创建,还能避免处理控件解包。如果直接定义控件v ar label = UILabel ,根据代码从上到下,会让控件在 V iewDidLad之前就提前创建了。所以需要懒加载。 OC 中懒加载就是 G et方法, S wift直接lazy var 。当然也可以private lazy var来限定作用域。 ( 1 )简单的懒加载:   ( 2 )完整的懒加载:()就是函数执行,就是一个特殊的闭包,所以懒加载本质是一个闭包。一般不这么写。    ( 3 ) OC 和 S wift 区别 *OC :          OC 是等于 nil 时候就懒加载           当 label 设 nil 的时候就在此调用。在ios 6 中,didReceiveMemoryWarning是不清理视图的。    此时释放的时候就会报错。因为定义的时候没有?,就是一定有值得。 那么如果定义时候加? 一旦label = nil ,也不会在执行懒加载了!因为懒加载根本没写如果是空就创建。 懒加载只会在第一次调用的时候执行闭包。 S wift 中一定注意不要主动清理视图或控件,因为懒加载不会创建了(例如内存警告别干掉控件,干掉了在也用不成了,因为懒加载就一次) (三)计算型属性

swift学习二:基本的语法

若如初见. 提交于 2020-03-06 18:16:27
声明本文转载自:http://www.cocoachina.com/applenews/devnews/2014/0603/8653.html Swift是什么? Swift是苹果于WWDC 2014公布的编程语言,这里引用 The Swift Programming Language 的原话: Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility. Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible and more fun. Swift’s clean slate, backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to imagine how software development works. Swift is the first industrial

swift学习二:基本的语法

拜拜、爱过 提交于 2020-03-06 18:15:47
声明本文转载自:http://www.cocoachina.com/applenews/devnews/2014/0603/8653.html Swift是什么? Swift是苹果于WWDC 2014公布的编程语言,这里引用 The Swift Programming Language 的原话: Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility. Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible and more fun. Swift’s clean slate, backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to imagine how software development works. Swift is the first industrial

Swift 简单介绍 - 苹果最新的编程语言

倾然丶 夕夏残阳落幕 提交于 2020-03-06 18:14:40
Swift 真的能够说是最新的编程语言了,2014wwdc刚刚公布,以下来了解一下都有哪些特点。 首先感谢原作者,主要内容是借鉴他的,參考链接 http://zh.lucida.me/blog/an-introduction-to-swift/ 关于 这篇文章简要介绍了苹果于 WWDC 2014 公布的编程语言——Swift。 前言 在这里我觉得有必要提一下 Bret Victor 的 Inventing on Principle 。Swift编程环境的大部分概念都源自于 Bret 这个演讲。 接下来进入正题。 Swift是什么? Swift是苹果于WWDC 2014公布的编程语言,这里引用 The Swift Programming Language 的原话: Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility. Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible and more

Swift 最佳实践(未完待续)

筅森魡賤 提交于 2020-03-03 21:30:01
使用 Swift 进行软件开发的最佳实践. 本文档的 英文版在这里 ,感谢 Swift社区 (频道为 #bestpractices )为我们提供如此优质的文档。 前言 这个文档的产生得益于我在创作 Swift Graphics 时做的一系列的手记。本指南中的大部分建议也考量了是否可以为其它的观点和论点。当然,感觉其他的方法必须存在时除外。 这些最佳实践没有规定或推荐 Swift 是否应该在一个程序上以面向对象的或者函数式的方式来使用。 本文档更多的是关注 Swift 语言及其标准库。也就是说,以一个纯粹的 Swift 的角度提供可提供的关于在 Mac OS, iOS, WatchOS 和 TVOS 上如何使用 Swift 的具体建议。 同时也会提供一些如何在 Xcode 和 LLDB中有效利用 Swift 的提示和技巧。 这项工作正在进行中,非常欢迎大家通过 Pull Request 或 Issues 的方式来贡献内容。 你也可以在 Swift-Lang slack (位于 #bestpractices 频道) 上参与讨论。 贡献者注意事项 请确保所有的例程是可运行的 (这可能不适用于现有的例程)。这个 markdown 文件会转化成一个 Mac OS X 的 playground. 黄金法则 Apple 通常是对的。应紧随苹果所推荐的或他的 Demo 中所展示的方式

在Swift中使用JavaScript的方法和技巧

China☆狼群 提交于 2020-03-02 06:08:58
JSContext/JSValue JSContext即JavaScript代码的运行环境。一个Context就是一个JavaScript代码执行的环境,也叫作用域。当在浏览器中运行JavaScript代码时,JSContext就相当于一个窗口,能轻松执行创建变量、运算乃至定义函数等的JavaScript代码: //Objective-CJSContext *context = [[JSContext alloc] init];[context evaluateScript:@"var num = 5 + 5"];[context evaluateScript:@"var names = ['Grace', 'Ada', 'Margaret']"];[context evaluateScript:@"var triple = function(value) { return value * 3 }"];JSValue *tripleNum = [context evaluateScript:@"triple(num)"]; //Swiftlet context = JSContext()context.evaluateScript("var num = 5 + 5")context.evaluateScript("var names = ['Grace', 'Ada',

“致命错误:在解开可选值时意外发现nil”是什么意思?

佐手、 提交于 2020-02-28 07:50:30
我的Swift程序因 EXC_BAD_INSTRUCTION 和以下错误而崩溃。 这是什么意思,我该如何解决? 致命错误:解开Optional值时意外发现nil 该帖子旨在收集“意外发现的零”问题的答案,以使它们不会分散且很难找到。 随意添加您自己的答案或 编辑 现有的Wiki答案。 #1楼 这个答案是 社区维基 。 如果您认为它可以做得更好,请随时对其进行 编辑 ! 背景:什么是可选的? 在Swift中, Optional 是一个 泛型类型 ,可以包含一个值(任何类型),或者根本不包含任何值。 在许多其他编程语言中,通常使用特定的“前哨”值来指示 缺少值 。 例如,在Objective-C中, nil ( 空指针 )指示缺少对象。 但这在处理原始类型时变得更加棘手-应该使用 -1 来指示缺少整数,或者可能 INT_MIN 或其他某个整数吗? 如果选择任何特定值表示“无整数”,则意味着它不再可以视为 有效值 。 Swift是一种类型安全的语言,这意味着该语言可帮助您弄清代码可以使用的值的类型。 如果代码的一部分需要一个字符串,则类型安全性可防止您误将其传递给Int。 在Swift中, 任何类型 都可以设为optional 。 可选的值可以从原始类型,任何值 或 特殊值 nil 。 可选用 ? 定义 ? 类型的后缀: var anInt: Int = 42 var