欢迎光临散文网 会员登陆 & 注册

swiftUI笔记2

2023-08-24 10:06 作者:便宜酒  | 我要投稿

可选值

在 Swift 中,可选类型(Optional)是一种特殊的类型,用于表示一个值可能存在,也可能不存在的情况。可选类型是 Swift 语言中对空值(nil)的一种处理方式。

当你声明一个可选类型的变量或常量时,它可以有两种可能的值:具体的值或者是空值(nil)。要声明一个可选类型,需要在类型后面加上问号 ?。

例如,下面是一个使用可选类型的示例:


当你需要使用可选类型的值时,需要进行解包(Unwrap)。解包是指将可选类型的值取出并转换为非可选类型。这可以通过使用感叹号 ! 运算符进行强制解包来实现。

If let是一种比较安全的取得可选值的方式。

在安卓开发中,Java 和 Kotlin 语言中也有类似的概念,称为 Nullable 类型。Nullable 类型允许变量或属性可以为空(null)。在 Java 中,可以使用 null 关键字表示空值;而在 Kotlin 中,可以使用 ? 符号来声明 Nullable 类型。

====================================================


#F5F5F7  苹果白

#1D1D1F苹果黑

====================================================

IOS中的观察者模式


·@EnvironmentObject:使用@EnvironmentObject,可以将一个对象设置为环境对象,并在需要访问该对象的任何视图中使用它。参数传入不再在构造参数列,而是用.environmentObject()


·@State:该注解使得某简单变量变为发布者,UI线程作为观察者一直监听该变量的变化,但只能用于同一个文件


·@Binding:创建一个可以在多个视图之间共享的双向绑定的属性。通常用于将父视图中@State的属性传递给子视图,并在子视图中对该@Binding属性进行更改。这样,当子视图更改属性的值时,父视图中的属性也会相应地更新。$是访问而不是修改,和@State在一起。



·ObservableObject:可观察的类,实现数据的双向绑定。它可以包含一个或多个被标记为@Published的属性。这些属性的值发生变化时,它们会自动发布通知,以便其他视图或对象可以观察到这些变化。

@ObservedObject&@Published :可以跨文件的观察者和发布者变量



====================================================


·sort(by

闭包接受两个参数`a`和`b`,并返回一个`Bool`值,表示`a`是否应该排在`b`之前。


====================================================


//随机

====================================================


extension是一种语言特性,用于扩展(或增强)现有的类型,包括结构体、类、枚举和协议。通过使用extension关键字,你可以在不修改原始类型的情况下,为它们添加新的功能、属性、方法或初始化器。


====================================================


\ .在Swift中被称为“关键路径”(key path),可以用于在另一个对象上指定VAR。

Int和String可以使用\.self,他们遵循Hashable协议


====================================================

Stack内部有贪婪,自己变贪婪


GeometryReader{proxy in

}包装后变成贪婪,为防止紧凑变贪婪,为视图添加.background( ),在它里面加GeometryReader{proxy in

Color.clear

}


贪婪转紧凑:在frame指定maxWidth,maxHeight为.infinity

紧凑转贪婪:在frame指定width和height即可


layoutPriority( ):视图空间分配优先级,括号里填数字


====================================================


 var id = UUID( )

//UUID()方法来生成一个唯一标识符(UUID)并将其赋值给变量id。UUID是一个通用唯一标识符,它是一个128位的数字,通常用于标识计算机系统、文件、网络资源等。在Swift中,可以使用UUID()方法来生成一个新的UUID。


====================================================

 一旦写了构造方法,就必须按参数列写入

 

====================================================

在SwiftUI中,some View 并不是一个协议,而是一种用来表示不透明视图类型的语法。在SwiftUI中,视图的类型很多时候是通过它的结构和组合来推断的,但有时候由于某些原因,编译器可能无法准确地确定视图的具体类型。这时候,就可以使用 some View 来表示一个不透明的视图类型,从而帮助编译器处理类型推断。

当你在SwiftUI代码中看到 some View 时,它通常用于返回一个视图,但不暴露其具体类型。这在一些情况下非常有用,比如在函数或闭包中返回不同类型的视图,但是不希望暴露这些具体的类型给调用者。


swiftUI笔记2的评论 (共 条)

分享到微博请遵守国家法律