hero image

一些记录

一步一个脚印,致敬每个当下的坚定的你。

Swift 与 OC

Swift 与 OC

共同点

  • 都是C语言的超集。OC在C语言基础上添加了一些面向对象编程的特性,Swift也是建立在C语言基础之上。
  • OC的引用计数、ARC、属性、协议、接口、初始化、扩展类、命名参数、匿名函数等,在Swift中继续有效。
  • Swift和OC共用一套运行时环境,Swift的类型可以桥接到OC,反之亦然

swift 优点

更安全

swift更安全,OC更灵活

swift 安全性,包括:

  • 类型安全:Swift 是一种静态类型语言,编译时会检查变量类型,可以避免一些常见的类型错误,如类型转换错误、访问不存在的方法或属性等。
  • 内存安全:Swift 使用自动引用计数 (ARC) 来管理内存,可以避免常见的内存泄漏和野指针问题。
  • 安全的字符串和集合操作:Swift 提供了强类型的字符串和集合类型,可以避免常见的字符串和集合操作中的缓冲区溢出和数组越界等安全问题。

木木木大约 14 分钟iOSswift区分底层原理
妈妈

妈妈

劝妈妈出来玩可不是容易的事,吐槽来回车费多贵,说自己身体多好不需要公司的福利体检。

很多年轻人早已气喘吁吁,而近六旬的妈妈在长城最高点气定神闲,想起妈妈当年为讨生活,年复一年的风里来雪里去,或许这就是她体力如此好、满满当当四天跟我去了十几个景点的原因。

妈妈以前似乎从没有进过动物园,记忆里的妈妈在动物园外边等大家出来,说门票那么贵也没什么好看的自己就不进去了。而那时候的她比起现在的我也大不了几岁。

站在清华北大门口,妈妈开心地像个孩子。参观历史展览,她会一行行一幅幅读地仔仔细细。听人说成绩优异的妈妈当年无奈辍学精神上承受了很多。不是她我也早已辍学,她从来无暇顾及自己的伤疤。回想班主任跟我的谈话,我知道他从来没有见过这么坚定的父母。


木木木大约 2 分钟
16.网络请求和数据解析

16.网络请求和数据解析

SwiftUI提供了一些强大的工具来执行网络请求和解析响应数据。

发送网络请求

SwiftUI中提供了URLSession API来发送网络请求。
下面是一个示例,展示如何使用URLSession API发送GET请求:

struct ContentView: View {
    @State private var posts: [Post] = []

    var body: some View {
        List(posts) { post in
            Text(post.title)
        }
        .onAppear {
            guard let url = URL(string: "https://url.com/posts") else { return }

            URLSession.shared.dataTask(with: url) { data, response, error in
                guard let data = data, error == nil else {
                    print(error?.localizedDescription ?? "Unknown error")
                    return
                }

                let decoder = JSONDecoder()
                if let decodedData = try? decoder.decode([Post].self, from: data) {
                    DispatchQueue.main.async {
                        self.posts = decodedData
                    }
                }
            }.resume()
        }
    }
}

木木木大约 3 分钟iOSSwiftSwiftUI网络
SEL和Method和IM

SEL和Method和IM

SEL是方法名称,Method包含方法名称、参数类型和返回类型等信息,IMP是实际执行方法代码的函数指针。

SEL(选择器)

用于表示一个方法的名称。每个方法都有一个唯一的SEL,它是在运行时动态创建的。当使用对象发送消息时,实际上是通过SEL来调用方法。

例如,如果有一个方法叫做doSomething,那么它对应的SEL就是@selector(doSomething)。在发送消息时,可以使用这个SEL来调用doSomething方法:

SEL funcSelector = @selector(func);
[obj performSelector:funcSelector];

木木木大约 2 分钟iOS区分底层原理
14.表单视图

14.表单视图

表单视图在 iOS 应用程序中是一种常见的用户界面组件,可以用于收集用户的输入或设置应用程序的选项。在 SwiftUI 中,表单视图是通过一个名为 Form 的容器视图来实现的,它提供了许多内置的表单元素,如文本字段、开关、选择器等。

创建表单视图

要创建一个表单视图,我们只需将所有表单元素放入 Form 容器中即可。以下是一个简单的示例:

struct ContentView: View {
    var body: some View {
        Form {
            Text("Hello, World!")
            TextField("Enter your name", text: .constant(""))
            Toggle("Show advanced options", isOn: .constant(false))
            Button("Submit") {
                // Submit the form
            }
        }
    }
}

木木木大约 3 分钟iOSSwiftSwiftUIUI
15.数据模型和数据管理

15.数据模型和数据管理

SwiftUI中可以使用数据模型来表示应用程序的数据,并使用数据管理来更新和传递这些数据。

数据模型

数据模型是应用程序中的数据结构。它定义了应用程序使用的数据类型,并确定数据之间的关系。可以使用Swift语言中的结构体来定义数据模型。

下面是一个简单的示例:

struct Person: Identifiable {
    var id = UUID()
    var name: String
    var age: Int
}

木木木大约 3 分钟iOSSwiftSwiftUI语法
13.列表视图

13.列表视图

在 SwiftUI 中,列表视图是一个非常重要的组件,可以用于显示数据列表、菜单、选项卡等。

SwiftUI 中的列表视图,包括 List 和 ForEach 两个组件的基本用法和高级用法。我们将通过一个示例来演示如何使用列表视图显示数据列表,并在列表项中添加图像、文本和交互控件。

List 组件

List 组件是 SwiftUI 中的列表视图,可以用于显示数据列表。List 组件需要一个数据源和一个内容视图,其中数据源用于提供列表数据,内容视图用于定义列表项的布局和样式。例如,我们可以使用 List 组件来显示一个简单的字符串数组:


木木木大约 5 分钟iOSSwiftSwiftUIUI
12.导航视图

12.导航视图

导航视图是 SwiftUI 中非常重要的一个组件,它可以用于管理应用程序中的多个视图。

导航视图的基础

在 SwiftUI 中,导航视图可以通过 NavigationView 和 NavigationLink 两个组件来实现。其中,NavigationView 用于包含和管理多个视图,而 NavigationLink 用于在不同的视图之间进行切换。

NavigationView

NavigationView 是一个容器视图,它可以包含多个视图,并将这些视图按照导航栏和工具栏的形式进行显示。当用户选择导航栏中的某个项目时,NavigationView 会自动将对应的视图进行显示。


木木木大约 3 分钟iOSSwiftSwiftUIUI
11.容器视图

11.容器视图

容器视图是 SwiftUI 中的一个重要组成部分,它们用于组合和管理其他视图,从而创建出复杂的用户界面。

常见的容器视图

SwiftUI 中有很多种容器视图,每种容器视图都有不同的用途和特点。下面是一些常见的容器视图:

VStack 和 HStack

VStack 和 HStack 都用于将多个视图按垂直或水平方向排列。VStack 将视图从上到下排列,而 HStack 将视图从左到右排列。这两种容器视图都支持对子视图的对齐方式、间距、填充等样式的设置。

ZStack


木木木大约 2 分钟iOSSwiftSwiftUIUI
个人简介

个人简介

  • 近而立之年

  • iOS/前端开发

  • 杰伦音乐忠实听众

  • 篮球痴迷孤独患者

  • 英语盲目练习角色

  • 健身佛系坚持人员


木木木小于 1 分钟
2
3
4
5
...
9