
swift
zfpp25_
iOS
展开
-
Swift 中的 as,as?,as! 的区别
在我的认知中,如果as能成功的话,说明as?和as!也一定会成功。在大多数情况下这是对的,但凡是总有例外。看到下面的代码,不知道你能不能看出问题。print(4 as Double) // print 4.0print(4 as! Double) // crash第一行代码成功执行,但第二行代码会有编译器⚠️,而且会造成崩溃,这是为什么呢?造成这种情况的原因就是 as 和 as? 与 as! 的执行机制不同。as 是在编译期执行的,而 as? 和 as! 是在运行时执行的。在...原创 2020-09-08 06:48:46 · 541 阅读 · 0 评论 -
Swift快速入门
一、常量&变量在Swift中规定:在定义一个标识符时必须明确说明该标识符是一个常量还是变量1、使用 let 定义常量,定义之后不可以修改let number = 10// 常量不可以修改number = 20 ❌2、使用 var 定义变量,定义之后可以修改var number = 10number = 20 ⚠️编译器会根据给变量或常量所赋的值,推断它的数据类型。所以这里系统会认为number是Int类型的⚠️ swift中输出语句:print函数pri原创 2020-09-07 21:51:37 · 2473 阅读 · 1 评论 -
Swift-27个知识点
1、柯里化(Currying)Swift 里可以将方法进行柯里化 (Currying),也就是把接受多个参数的方法变换成接受第一个参数的方法,并且返回接受余下的参数并且返回结果的新方法func add(_ v1:Int,_ v2:Int) -> Int { return v1 + v2}print(add(1, 2))//柯里化(Currying)func add(_ v:Int) -> (Int) -> Int { return {$0 + v}}原创 2020-09-06 14:47:27 · 812 阅读 · 0 评论 -
OC到Swift的转变
1、Selector@selector是Objective-C时代的一个关键字,它可以将一个方法转换并赋值给一个SEL类型,它的表现很类似一个动态的函数指针。在 Objective-C 时selector非常常用,从设定target-action,到自举询问是否响应某个方法,再到指定接受通知时需要调用的方法等等,都是由selector来负责的。在 Objective-C 里生成一个selector的方法一般是这个样子的-(void) callMe { //...}-(voi...原创 2020-09-04 23:17:29 · 939 阅读 · 0 评论 -
OC项目转Swift总结
运行环境:Xcode 11.1 Swift5.0最近项目需要从Objective-C(以下简称OC)转到Swift,期间遇到一些问题,记录下来方便以后查阅。OC转Swift有一个大前提就是你要对Swift有一定的了解,熟悉Swift语法,最好是完整看过一遍官方的Language Guide。转换的过程分自动化和手动转译,鉴于自动化工具的识别率不能让人满意,大部分情况都是需要手动转换的。自动化工具有一个比较好的自动化工具Swiftify,可以将OC文件甚至OC工程整个转成Swift,号称准原创 2020-09-04 11:58:39 · 872 阅读 · 0 评论 -
swift学习总结
1.Class 和 Struct 的区别 类是引用类型, 结构体为值类型 结构体不可以继承 值类型被赋予给一个变量、常量或者被传递给一个函数的时候,其值会被拷贝 引用类型在被赋予到一个变量、常量或者被传递到一个函数时,其值不会被拷贝。因此,引用的是已存在的实例本身而不是其拷贝 2.理解Swift值类型的写时复制 只有当一个结构体发生了写入行为时才会有复制行为。 在结构体内部用一个引用类型来存储实际的数据,在不进行写入操作的普通传递过程中,都是将内部的r原创 2020-09-03 20:10:07 · 425 阅读 · 0 评论