
swift
文章平均质量分 69
想名真难
这个作者很懒,什么都没留下…
展开
-
swift Codable 的用法和原理
Codable 也可以代表苹果为 Swift 开发的一套编解码系统,从 Swift 4 开始引入,包含了 Encoder 和 Decoder 协议和他们的两个实现 JSONEncoder、JSONDecoder 和 PropertyListEncoder、PropertyListDecoder。其中 Codable 及其相关协议放在了标准库中,而具体的 Encoder、Decoder 类放在了 Foundation 框架中。转载 2024-01-01 17:01:26 · 1121 阅读 · 0 评论 -
Swift 创建一个自己的命名空间
Swift的三方库,比如RxSwift中的rx,Kingfisher中的kf,给类别添加了一个前缀,就想写一个自己的前缀在项目中使用,可用区别工程中自己添加的独有扩展方法。原创 2022-11-12 19:18:55 · 1353 阅读 · 0 评论 -
iOS中的重载和重写
oc中对同一个方法是不区分参数的, 所以没有重载这个概念, 但是swift中有重载的概念.区分一下iOS中重载和重写的概念. 一.重载(overload)在同一个类中,只要方法的方法名相同,那么这几个方法就构成重载。重载方法的参数类型和参数个数可以不同,返回值的类型也可以不同,无法根据返回值类型来判断一个方法是不是重载方法。重载方法的权限可以是是任意权限.最常见的就是构造方法的重载。二.重写(override)重写方法的方法名和方法参数(参数数量,参数类型)必须完全一致。重写方法只能发生在父类和子类之间。原创 2022-06-05 10:24:47 · 1592 阅读 · 1 评论 -
Swift中的函数调用
swift的方法调度在Objective-C中,是通过runtime的objc_msgsend进行方法(消息)的派发,那再Swift中时怎么的呢,见代码:class LGTeacher{ func teach(){ print("teach") }}class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad()转载 2022-01-16 16:14:57 · 1578 阅读 · 0 评论 -
Swift中的指针简单用法
指针Swift中指针分为两类:typed pointer:指定数据类型指针,UnsafePointer<T>,T表示泛型。 raw pointer:未指定数据类型指针(原生指针),UnsafeRawPointerSwift 中的指针和 OC 中指针的对应关系如下:UnsafePointer: 可以通过ptr.pointee获取value, 但是无法修改指针的值UnsafeMutablePointer : 可以通过ptr.pointee修改和获取valuevar ..原创 2021-12-22 23:08:38 · 1989 阅读 · 0 评论 -
Swift中使用 +load 和 +initialize
+load 和 +initialize 方法是我们写 Objective-C 代码时常用的两个方法,不过貌似在 Swift 4.x 后,这两个方法在 Swift 类中不那么好使,会报如下编译错误:Method 'load()' defines Objective-C class method 'load', which is not permitted by Swift Method 'initialize()' defines Objective-C class method 'initialize转载 2021-11-23 11:47:53 · 3023 阅读 · 0 评论 -
规范写法提高swift的编译速度
文章将从两方面来介绍如何提高swift项目的编译速度,一是从代码优化上,一是从编译器设置上。转载 2021-11-21 13:22:16 · 925 阅读 · 0 评论 -
Swift 中实现 Promise 模式
在异步编程中,除了竟态处理、资源利用以外,另外一个难点就是流程管理。在拥有匿名函数、闭包这些特性的编程语言中,我们通常可以使用回调函数来做一个异步任务完成或失败时的处理。但当我们的业务逻辑逐渐复杂时,就会产生回调嵌套,整个事件流将十分混乱。今天要谈的模式是Promise。当然异步流程处理的方式远不止 Promise 这一种。Getting Started相信大家在日常开发中对下面这种模式已经不陌生了:dispatch_async(dispatch_get_global_queue(QOS_C.转载 2021-09-21 17:58:17 · 1130 阅读 · 0 评论 -
Swift函数式编程初识
Swift函数式编程教程当从Objective-C(文章其余地方将简称OC)编程转移到Swift过程中,将OC中的概念映射到Swfit是非常符合逻辑的。你知道在OC中如何创建类,那在Swift也是一样。当然,Swfit有一些完全新的特性诸如泛型和范围操作数,但仍然还有你已经知道一些小的非常精妙的技术。(OK,可能也不那么小!)但,Swfit不仅仅是为应用提供了一个更好的语法。使用这门新语言,你能有机会改变解决问题及编码的思路。结合Swift,函数式编程技术在你的编程武器中成为了一个可行的重要的部分。转载 2021-09-21 17:20:31 · 365 阅读 · 0 评论 -
什么是ABI? Swift ABI稳定有什么用?
一、ABl是什么每个操作系统都会为运行在该系统下的应用程序提供应用程序二进制接口(Application Binary Interface,即ABI), 描述了应用程序和操作系统之间,一个应用和它的库之间的接口。与API不同的是:ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行,而API则是定义 源代码 和 库 之间的接口,同样的代码可以在支持这个API的任何系统中编译。ABI包含了应用程序在这个系统下运行时必须遵守的编程约定。ABI总是包含一系列的系统调用和使用这些系统调用的..转载 2020-07-26 17:25:43 · 4634 阅读 · 0 评论 -
swift 属性的几个写法
基础语法速查 http://www.jianshu.com/p/1c25105bba4fimport Foundationclass Person : NSObject { //普通属性 var firstName = "" var lastName = "" var nickName = "" //计算属性,不需要等号,不需要初始值,swif...原创 2016-04-18 20:59:43 · 617 阅读 · 1 评论 -
swift 小技巧进阶
与if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行。与if语句不同的是,guard只有在条件不满足的时候才会执行这段代码。你可以把guard近似的看做是Assert,但是你可以优雅的退出而非崩溃。 guard let x = x where x > 0 else { // 变量不符合条件判断时,执行下面代码 retur转载 2016-04-20 10:33:13 · 681 阅读 · 0 评论 -
swift 中的闭包回调
https://blog.youkuaiyun.com/shifang07/article/details/76293275@noescape在swift3.0中已经被废弃,在swift3.0中@noescape被用作一个默认值。@escaping属性写在参数类型的前面而不是参数名称的前面。这是swift3里一个新的点。 这里需要先介绍一下escape的概念。当一个闭包当做一个参数传进函数里,...转载 2016-04-18 11:37:28 · 1077 阅读 · 0 评论 -
Swift Any和AnyObject类型
Any和AnyObject的类型转换 Swift为不确定类型提供了两种特殊类型别名:AnyObject可以代表任何class类型的实例。Any可以表示任何类型,除了方法类型(function types)。注意:只有当你明确的需要它的行为和功能时才使用Any和AnyObject原创 2016-03-22 20:27:40 · 1277 阅读 · 0 评论 -
Swift之 ? , !, as
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:var stringValue : String //error: variable 'stringValue' used before being initialized//let hashVa转载 2016-03-22 19:41:10 · 273 阅读 · 0 评论 -
oc swift 混编
2015年3月起我们着手用Objective C开发Skyscanner TravelPro应用。几个月后Swift 2.0发布时,我们开始慢慢采用Swift。8个月之后--100%的新代码都是用Swift写的。所有这些工作都没有重写现有的,运行良好的,健壮的、经过测试的Objective-C代码--这样做已经没有什么意义了。市面上有很多论述如何决定是否要将Swift应用在新项目中的资料,转载 2016-03-12 18:53:22 · 796 阅读 · 0 评论 -
swift中 gcd使用变化
首先,dispatch 的全局函数不再写为下划线风格的名称了,它变成了一个更符合 Swift 风格的 DispatchQueue 的样子。原创 2016-09-23 13:18:35 · 4943 阅读 · 0 评论 -
swift 处理字符串
对应可变字符串可以插入、删除和替换,String提供了几个方法可以帮助实现这些操作。这些方法如下:splice(_:atIndex:)。在索引位置插入字符串。insert(_:atIndex:)。在索引位置插入字符。removeAtIndex(_:)。在索引位置删除字符。removeRange(_:)。删除指定范围内的字符串。replac转载 2016-06-20 16:39:02 · 832 阅读 · 1 评论