Swift共23篇
模式(一) – MVVM-Stewed Noodles 资源

模式(一) – MVVM

MVVM 工作原理 MVVM - 模型、视图、ViewModel,理解 MVVM 的最佳方式是这样的:除了创建一个新类 ViewModel 负责将模型中的数据转换为视图中的格式化值之外,它与 MVC 别无二致。 MVVM 模式由三...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri1年前
02415
函数式编程-Stewed Noodles 资源

函数式编程

运用五项原则,帮助实现函数式编程的优势。 函数是一等数据类型,可以像整数和字符串一样被创建、复制和传递。【一等数据类型】 函数是一等数据类型,所以它们可以用作其他函数的参数。【高阶函...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri1年前
04714
轻松解析 XML-Stewed Noodles 资源

轻松解析 XML

开始解析 首先,我们将创建两个类来保存所有数据:一个名为 XMLNode 的类代表解析 XML 中的一个节点,另一个名为 MicroDOM 的类负责将 XML 实际解析为节点。XML 的本质是整个树最终由一个根节点...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri10个月前
04514
语法(三) – guard-Stewed Noodles 资源

语法(三) – guard

guard 语句的主要用法有以下几种: 提前返回 减少缩进级别 高Happy Path可见性 提前返回 guard 用于提前返回,如果某些先决条件未满足,则退出函数。 func giveAward(to name: String) { guard n...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri1年前
02114
类型(一) - 有用的初始化器-Stewed Noodles 资源

类型(一) – 有用的初始化器

重复值 字符串或者数组的 repeating:count: 初始化器,可以快速创建大量值。 This is a heading ============== 具体的实现代码 let heading = 'This is a heading' let underline = String(rep...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri1年前
03013
语法(一) - 模式匹配-Stewed Noodles 资源

语法(一) – 模式匹配

Swift 的 switch 语句具有灵活却富有表现力的匹配模式。 基本使用 单值匹配 单值字符串匹配 let name = "twostraws" switch name { case "bilbo": print("Hello, Bilb...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri1年前
03113
动画(三) - 动画协议-Stewed Noodles 资源

动画(三) – 动画协议

SwiftUI 属性动画系统的核⼼是 Animatable 协议。这个协议可以被视图和视图修饰符所实现,它们通过该协议把可以进⾏动画的属性暴露给SwiftUI。 这个协议唯⼀的要求是⼀个 animatableData 属性,...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri10个月前
02611
动画(一) - 属性动画-Stewed Noodles 资源

动画(一) – 属性动画

在 SwiftUI 中,修改状态是唯⼀能触发视图更新的⼿段。默认情况下,旧视图树与新视图树之间的更改不会进⾏动画处理。 对那些在视图树中已经存在,且在状态变化前后属性也相应改变的视图,属性动...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri10个月前
02311
动画(四) - 过渡-Stewed Noodles 资源

动画(四) – 过渡

以视图的插⼊和移除来设定动画,SwiftUI 将这些动画称为 过渡 (transition) 。 当我们使⽤动画来改变那些会导致视图插⼊或者移除的状态时,SwiftUI 会添加⼀个默认的 .opacity 过渡效果。 struc...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri8个月前
09210
类型(六) - 泛型-Stewed Noodles 资源

类型(六) – 泛型

func inspect<T>(_ value: T) { print('Received \(type(of: value)) with the value \(value)') } inspect('Haters gonna hate') inspect(56) 限制泛型 func square<T: Numeric>(_...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri1年前
04510