持续创作,加速成长!这是我参与「日新计划 6 月更文挑战」的第10天,点击查看活动详情。

在本章中,你将学会实例方法和类型方法的使用。

前言

Apple官网或者网上分享的教程类文章不同,我将以实际开发角度讲述mvvm框架Swift语言的一些概念和用法,方便大家更好地学习和掌握Swift语言。

这同时也是对自己学习Swift语言过程的变量类型有哪些知识整理。

如有错误,以你为准。

我们新建一个SwiftUI项目,命名为SwiftUapp id注册IPorperty

Swift实用小册10:实例方法和类型方法的使用

方法的概念

方法,实现某种业务逻辑的代码块。

Swift开发过程中,方法的使用尤其重要。为了保持代码的优雅知性,我们常常会把业务逻辑操作全部抽离出来,然后在需要的mvvm模式地方调用方法即可。方法在使用上可以分为实例方法类型方法

实例方法的创建

实例方法可以通过访问变量名的命名规则和修改实例属性的方式,来实现实例的相关功能。这里我们用实际开发中的MVVM模式来做示例。示例:

//实例方法
import SwiftUI
import Combine
class TabbarViewModel: ObservableObject {
@Published var selectedTab:Int = 0
@Published var isVip:Bool = false
@Published var isEdit:Bool = false
//跳转到mineView
func toMineView() {
self.selectedTab = 1
}
}

上述代码中,我们定义了一个TabbarViewModel类,它遵循Obserapple payvableObject协议。在TabbarViewModel类中,我们声明了三个变量:sel变量名的命名规则ectedTab、isVip、isEditmvvm和mvc的区别我们给三个变量赋予了类型属性和初始值。

然后,我们定义了一个t变量oMineView实例方法,调用这个实用方法时,selectedTab重新赋值为1

Swift实用小册10:实例方法和类型方法的使用

科普一个知识点。

这里toMineView实例方法中,我们selectedTab参数使用浏览器数据如何恢复变量self属性。

self属性等同于这个实例本身,它是一个隐含apple watch属性,实际上我们也可以不表明selectedTab是实例本身的属性,如Apple果我们不浏览器使用self指定的apple官网浏览器的历史,系统会自动判断你使用的参数都变量泵是它实例本身的属性。

那为什么我们要使用selmvvm原理面试f属性呢?这是因为如果浏览器我们mvvm框架在写代码的时候,实例方法中的某个参数名称和实例中的某个参数一致的时候,我们可以使用self属性区分这个参数是实例方法的参数,还是实例中的参数,消除代码歧义,提高代码严谨性

好了,我们继续。

实例方法的调用

定义了方法后,如果我们需要调用方法,也调用属性的做法一致,使用【mvvm模式+方法】进行调用。示例:

//实例方法的调用
@EnvironmentObject private var tabbarViewModel: TabbarViewModel
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
 tabbarViewModel.toMineView()
}

上述代码中,我们首先使用EnvironmentObject在视mvvm数据双向绑定原理apple pay之间共享数据,然后我们就可以直接使用tabbarViewModel内的参数或者方法,在实际代码中,我们使用在主线程执行.toMineView的方法,用的是点语法的形式。

Swift实用小册10:实例方法和类型方法的使用

类型方法的创建

实例方法浏览器网站删除了怎么恢复是类的实例被调用的方法,而类型方法类型本身被调用的方法。

类型方法有两种使用场景,一种是应用于结构体,一种是应用于类,我们常用的是应用在结构体的场景。应用于结构体时,我们需要使用static声明。示例:

import SwiftUI
struct Constants {
 static let webSiteName = "访问官网"
  static let privacyPolicyViewName = "隐私政策"
  static let userAgreementViewName = "用户协议"
  static let appstoreViewName = "去App Store评分"
  static let feedbackView = "帮助与反馈"
  static let aboutViewName = "关于我们"
}

上述代码中,我们创建了一个Constants结构体,然后使用static关键字和let声明了一些常量,并赋予了初始值。这里的Coapple id密码重置nstants就是一个类型方法变量泵

类型方法apple id密码重置的调用

我们在实际业务中调用的是Constants结构体本身。变量值示例:

// MARK: - 访问官网
private var toOurSiteView: some View {
Button(action: {
guard let url = URL(string: Utils.webSite), UIApplication.shared.canOpenURL(url) else {
return
}
UIApplication.shared.open(url as URL)
}) {
HStack {
Text(Constants.webSiteName)
.foregroundColor(Constants.blackColor)
Spacer()
Image(systemName: Constants.rightButton)
.foregroundColor(.gray)
}
}
}

上述代码中,我们实现了一个跳转打开浏览器的一个操作,在这个操作的样式部分,也就是HStack变量与函数里面,我们Text文字就调用Constants结构体中的webSiteName参数,使用的也是点语法形式进行调用。

Swift实用小册10:实例方法和类型方法的使用

以上就是本章的全部内容。

快来动手试试吧!

如果本专栏对你有帮助,不妨点变量之间的关系赞、评论、关注~