一、方法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声明的变量虽然与自动局部变量的作用域相同(即作用域都只限于函数内)
转载
2024-04-10 06:58:45
22阅读
# Swift static 属性详解
在Swift编程语言中,`static`属性是一种用于创建与类或结构体直接关联的属性。这意味着这些属性不是实例属性,而是与类型本身相关联的属性。使用`static`的好处在于,它允许在不创建类型实例的情况下访问这些属性。
## 何时使用 static 属性?
1. **共享数据**:当你希望在所有实例之间共享数据时,可以使用`static`属性。
2.
static的作用是什么?1,全局静态变量在全局变量前加上关键字static,全局变量就被定义为一个全局静态变量。静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0。作用域:全局静态变量在声明它的文件之外是不可见的,准确的说,是从定义处开始,知道文件结尾。2,局部静态变量在局部变量之前加上关键字static,局部变量就变为一个局部静态变量。内存中的位置:静态
转载
2024-10-25 22:50:38
37阅读
热烈欢迎,请直接点击!!!进入博主App Store主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!!! 本文降温你解析常见的单例模式。单例模式可以保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。首先导入需要使用到的界面工具框架import UIKit单例对象保证了只有一个实例的存在,这样有利于我们协调系统的整体行为。final修饰符可以防止类被继承
转载
2023-09-18 14:21:11
106阅读
Swift中表示 “类型范围作用域” 这一概念有两个不同的关键字,它们分别是static和class。这两个关键字确实都表达了这个意思,但是在其他一些语言,包括Objective-C中,我们并不会特别地区分类变量/类方法和静态变量/静态函数。但是在Swift中,这两个关键字却是不能用混的。static关键字在非class的类型上下文中,我们统一使用static来描述类型作用域。这包括在
转载
2023-10-26 21:06:44
104阅读
构造函数
非 Optional 属性, 都必须在构造函数中设置初始值, 从而保证对象在实例化的时候, 属性都能被正确的初始化构造函数的目的: 给自己的属性分配空间并且设置初始值在调用父类的构造函数之前, 必须保证本类的属性都已经完成初始化调用父类的构造函数, 给父类的属性分配空间并且设置初始值如果重载了构造函数, 并且没有重写父类的 init 方法,系统不再提供 init 构造函数(默认
转载
2024-06-24 23:52:34
7阅读
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
转载
2024-01-05 23:31:04
36阅读
本文降温你解析常见的单例模式。单例模式可以保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。首先导入需要使用到的界面工具框架 import UIKit 单例对象保证了只有一个实例的存在,这样有利于我们协调系统的整体行为。final修饰符可以防止类被继承,还可以防止子类重写父类的属性、方法以及下标。该修饰符不能修饰结构体和枚举。 1 final class SingleCl
转载
2023-11-29 14:20:53
174阅读
我们的iOS项目中使用了Swift+Objective-C的混合开发,很长一段时间我们在Podfile中使用的是use_frameworks!,也就是把所有Pods做成Dynamic framework。 微信等第三方SDK以静态库.a的形式提供给开发者,导致我们没有办法直接依赖,会报类似xxx has transitive dependencies that include static bin
转载
2023-11-02 08:36:12
0阅读
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
转载
2024-07-05 21:58:02
34阅读
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,
转载
2024-07-05 22:00:28
67阅读