一、方法1.1 方法的声明我们知道, Swift 中, class 声明类类型, struct 声明结构体。类类型属于引用类型,结构体属于值类型。那么对于他们方法上面的区别有什么体现? 可以看到,同样的方法声明,结构体却会报错。这是为什么? Q:为什么如下加上关键字 mutating 就可以了A: 因为值类型属性不能被自身的实例方法修改。1.2 解读 S
转载 2024-10-08 18:06:21
58阅读
Swift中有多少关键字?Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式中、类中、模式中, 还有以数字符号#开头的关键字, 以及特定上下文环境使用的关键字。 另外, 特性中还有一些关键字, 是以@开头的关键字。本篇主要写到不带符号的关键字, 如带#的关键字和带@的特性将在下篇文章中详细说明。用在声明中的关键字associatedtype、class、de
转载 2023-08-08 17:46:55
120阅读
OC: static关键字表示静态,能够放在局部变量和全局变量前面: 限定作用域:对于静态全局变量来说,针对某一源文件的以static声明的文件级变量与函数的作用域只限于文件内(只文件内可见),也即“内部连接”,因而可以用来限定变量的作用域;标明生存周期:对于静态局部变量来说,函数内以static声明的变量虽然与自动局部变量的作用域相同(即作用域都只限于函数内)
# Swift static 属性详解 Swift编程语言中,`static`属性是一种用于创建与类或结构体直接关联的属性。这意味着这些属性不是实例属性,而是与类型本身相关联的属性。使用`static`的好处在于,它允许不创建类型实例的情况下访问这些属性。 ## 何时使用 static 属性? 1. **共享数据**:当你希望在所有实例之间共享数据时,可以使用`static`属性。 2.
原创 10月前
39阅读
static的作用是什么?1,全局静态变量全局变量前加上关键字static,全局变量就被定义为一个全局静态变量。静态存储区,整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0。作用域:全局静态变量声明它的文件之外是不可见的,准确的说,是从定义处开始,知道文件结尾。2,局部静态变量局部变量之前加上关键字static,局部变量就变为一个局部静态变量。内存中的位置:静态
转载 2024-10-25 22:50:38
37阅读
热烈欢迎,请直接点击!!!进入博主App Store主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!!! 本文降温你解析常见的单例模式。单例模式可以保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。首先导入需要使用到的界面工具框架import UIKit单例对象保证了只有一个实例的存在,这样有利于我们协调系统的整体行为。final修饰符可以防止类被继承
 Swift中表示 “类型范围作用域” 这一概念有两个不同的关键字,它们分别是static和class。这两个关键字确实都表达了这个意思,但是在其他一些语言,包括Objective-C中,我们并不会特别地区分类变量/类方法和静态变量/静态函数。但是Swift中,这两个关键字却是不能用混的。static关键字非class的类型上下文中,我们统一使用static来描述类型作用域。这包括
构造函数 非 Optional 属性, 都必须在构造函数中设置初始值, 从而保证对象实例化的时候, 属性都能被正确的初始化构造函数的目的: 给自己的属性分配空间并且设置初始值调用父类的构造函数之前, 必须保证本类的属性都已经完成初始化调用父类的构造函数, 给父类的属性分配空间并且设置初始值如果重载了构造函数, 并且没有重写父类的 init 方法,系统不再提供 init 构造函数(默认
In Swift, however, type properties are written as part of the type’s definition, within the type’s outer curly braces, and each type property is expli
转载 2019-07-22 14:44:00
101阅读
2评论
Swift中表示 “类型范围作用域” 这一概念有两个不同的关键字,它们分别是static和class。这两个关键字确实都表达了这个意思,但是在其他一些语言,包括Objective-C中,我们并不会特别地区分类变量/类方法和静态变量/静态函数。但是Swift中,这两个关键字却是不能用混的。 非class的类型上下文中,我们统一使用static来描述类型作用域。这包括enum和struct中表
1、静态全局变量 全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1 #include <iostream.h> void fn(); static int n; //定义静态全局变量 void main() { n=20; cout<<n<<endl;
关于「类型转换」(Type Casting),《The Swift Programming Language》描述如下:Type casting is a way to check the type of an instance, and/or to treat that instance as if it is a different superclass or subclass fr
本文降温你解析常见的单例模式。单例模式可以保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。首先导入需要使用到的界面工具框架 import UIKit 单例对象保证了只有一个实例的存在,这样有利于我们协调系统的整体行为。final修饰符可以防止类被继承,还可以防止子类重写父类的属性、方法以及下标。该修饰符不能修饰结构体和枚举。 1 final class SingleCl
我们的iOS项目中使用了Swift+Objective-C的混合开发,很长一段时间我们Podfile中使用的是use_frameworks!,也就是把所有Pods做成Dynamic framework。 微信等第三方SDK以静态库.a的形式提供给开发者,导致我们没有办法直接依赖,会报类似xxx has transitive dependencies that include static bin
a:静态方法中是没有this关键字的!1 静态是随着类的加载而加载,this是随着对象的创建而存在。2 静态比对象先存在3 静态方法只能访问静态的成员变量和静态的成员方法静态方法:成员变量:只能访问静态变量成员方法:只能访问静态成员方法非静态方法: 成员变量:可以是静态的,也可以是非静态的 成员方法:可是是静态的成员方法,也可以是非静态的成员方法。 简单记: 静态只能访问静态2 被static
转载 2023-07-10 12:55:32
108阅读
这次写一下关于Swift中AnyClass的使用以及动态类型的实例化和使用场景 AnyClass与AnyObject Swift中,任何自定义的对象都是AnyClass的子类,类似于Java的Object类(但注意,这和Objective-C的NSObject不同,后者Swift中是专门的UIKit或者AppKit框架里面定义的类型,而非语言所规定的类型) AnyClass The pr
转载 2024-02-28 14:22:56
78阅读
代码截图小笔记这段代码在说什么图示里的代码让 URL 遵守了 ExpressibleByStringLiteral 协议,并重写了其对应的构造器,使我们能够通过字符串的字面量直接创建 URL 对象。如果想在 Swift 3 之前实现同样的功能,我们需要实现 URL 的 init(extendedGraphemeClusterLiteral value: StaticString) 和 init(u
09、Swift中的class1、struct 和 class的差异1.1 引用类型必须明确指定init方法1.2 引用类型关注的是对象本身1.3 引用类型默认是可以修改的2、理解class类型的各种init方法2.1 默认init2.1.1 方式一2.1.2 方式二2.2 Convenience init2.3 Failable init3、继承3.1 init方法3.1.1 init的继承3
转载 2023-08-30 13:33:18
6阅读
Swift 中表示“类型范围作用域”这一概念的有两个不同的关键字,它们分别是static 和 class。这两个关键字确实都表达了这个意思,但是在其他一些语言,包括Objective-C中,我们并不会特别的区分类变量/类方法和静态变量/静态函数。但是Swift中,这两个关键字却是不能用混的。static非class类型上下文中,我们统一使用static来描述类型作用域,包括enum 和str
转载 2023-08-08 16:35:15
70阅读
mutating的作用 struct 是值类型,默认情况下实例方法不能修改值类型的属性 需加 mutating 1.1 Swift 不建议struct,enum的普通方法里修改属性值,但是加了mutating 关键字之后就可以了 如下struct Point { var x = 0 var y = 0 mutating func movePoint(x:Int,
  • 1
  • 2
  • 3
  • 4
  • 5