iOS开发Swift篇—(十)方法

简介:

一、简单说明

跟其他面向对象语言一样,Swift中的方法可以分为2大类:

(1)实例方法(Instance Methods)

  在OC中,实例方法以减号(-)开头

(2)类型方法(Type Methods)

  在OC中,类型方法以加号(+)开头

二、实例方法

1.什么是实例方法?

实例方法:就是只能用对象实例调用的方法,也可以称为“对象方法”

实例方法的语法跟函数基本一样

2.代码示例:

复制代码
1 class Dog {
2  func run() {
3 println("Dog--->run")
4  }
5 }
6 var d = Dog()
7 d.run()
复制代码

说明:

第2行定义了一个run方法

第7行调用run方法:调用方法也跟调用函数很像,格式是“对象名.方法名(参数)”

三、方法的参数

(1)方法和函数的参数有点区别,默认情况下

方法的第1个参数名仅仅是局部参数名

方法的其他参数名(除第1个参数名以外)既是局部参数名,又是外部参数名

复制代码
1 class Calculator {
2 func sum(num1: Int, num2: Int) -> Int {
3 return num1 + num2
4  }
5 }
6 var c = Calculator()
7 c.sum(10, num2: 20)
复制代码

说明:

num1仅仅是局部参数名,num2既是局部参数名,又是外部参数名

相当于func sum(num1: Int, #num2: Int) -> Int

(2)可以在参数名前面加个下划线 _,去掉默认的外部参数名

复制代码
1 class Calculator {
2 func sum(num1: Int, _ num2: Int) -> Int {
3 return num1 + num2
4  }
5 }
6 var c = Calculator()
7 c.sum(10, 20)
复制代码

说明:num1、num2都仅仅是局部参数名,不是外部参数名

(3)也可以给第1个参数增加外部参数名

复制代码
1 class Calculator {
2 func sum(#num1: Int, num2: Int) -> Int {
3 return num1 + num2
4  }
5 }
6 var c = Calculator()
7 c.sum(num1: 10, num2: 20)
复制代码

说明:num1、num2既是局部参数名,又是外部参数名

四、类型方法

1.什么是类型方法?

  被关键字class修饰的方法,也可以称为“类方法”

1 class Calculator {
2 class func sum(num1: Int, num2: Int) -> Int {
3 return num1 + num2
4  }
5 }
6 Calculator.sum(10, num2: 20)

说明:

第2行定义了一个类型方法

类型方法的特点:直接用类调用类型方法,不能用对象调用类型方法

第6行调用类型方法,格式是“类名.方法名(参数)”

注意:类型方法和实例方法的方法名可以一样

复制代码
 1 class Calculator {
 2 class func sum(num1: Int, num2: Int) -> Int {
 3 return num1 + num2
 4  }
 5 func sum(num1: Int, num2: Int) -> Int {
 6 return num1 + num2
 7  }
 8 }
 9 Calculator.sum(10, num2: 20)
10 var c = Calculator()
11 c.sum(10, num2: 20)
复制代码

说明:

第2行定义的类型方法和第5行定义的实例方法:方法名一样

第9行使用类调用类型方法

第11行使用对象调用实例方法

五、self

1.简单说明

在每个方法内部,都有个隐含的属性self,它的作用跟Objective-C中self的用法基本一致

self代表的是什么?谁调用这个方法,self就代表谁

(1)在实例方法中:self代表调用方法的某个对象

(2)在类型方法中:self代表调用方法的某个类

2.代码示例

复制代码
 1 class Person {
 2 class func run() {
 3 println("class func run")
 4  }
 5  func run() {
 6 println("func run")
 7  }
 8 class func test() {
 9  self.run();
10  }
11  func test() {
12  self.run();
13  }
14 }
15 var p = Person()
16 p.test()
17 Person.test()
复制代码

程序的输出结果是:

func run

class func run

目录
相关文章
|
2天前
|
存储 定位技术 Swift
探索iOS开发:从新手到专家
【8月更文挑战第29天】在这篇指南中,我们将一起踏上iOS开发的旅程。无论你是刚入门的新手,还是希望提升技能的开发者,本文将为你提供一条清晰的道路。我们将从基础概念讲起,逐步深入到高级技巧,确保你能够掌握iOS开发的核心知识。准备好了吗?让我们开始吧!
|
11天前
|
安全 网络安全 Android开发
安卓与iOS开发:选择的艺术网络安全与信息安全:漏洞、加密与意识的交织
【8月更文挑战第20天】在数字时代,安卓和iOS两大平台如同两座巍峨的山峰,分别占据着移动互联网的半壁江山。它们各自拥有独特的魅力和优势,吸引着无数开发者投身其中。本文将探讨这两个平台的特点、优势以及它们在移动应用开发中的地位,帮助读者更好地理解这两个平台的差异,并为那些正在面临选择的开发者提供一些启示。
110 56
|
1天前
|
开发工具 C语言 Swift
探索iOS开发之旅:从入门到精通
【8月更文挑战第30天】在这篇文章中,我们将一起踏上一场关于iOS开发的奇妙旅程。无论你是刚刚接触iOS开发的新手,还是希望提升自己技能的开发者,这篇文章都将为你提供有价值的指导和启示。我们将从基础的iOS开发概念开始,逐步深入到高级技巧和最佳实践。通过这篇文章,你将了解到如何构建一个成功的iOS应用程序,以及如何不断提升自己的开发技能。让我们一起开启这场探索之旅吧!
10 4
|
1天前
|
Swift iOS开发 开发者
探索iOS开发:SwiftUI的魔力
【8月更文挑战第30天】在这篇文章中,我们将一起揭开SwiftUI的神秘面纱,这是Apple为iOS开发者带来的一种创新和简化界面设计的框架。通过直观易懂的语言和实际案例,我们会深入探讨SwiftUI如何让代码变得像诗一样优美,同时提升开发效率。你将看到,即便是编程初学者也能迅速上手,构建出令人惊叹的应用界面。让我们跟随SwiftUI的步伐,开启一段高效、愉悦的开发旅程。
|
2天前
|
设计模式 Swift iOS开发
探索iOS开发之旅:从新手到专家
【8月更文挑战第30天】本文将引导你进入iOS开发的奇妙世界。无论你是编程新手,还是希望提升你的iOS开发技能的开发者,这篇文章都会为你提供有价值的信息和建议。我们将从基础的iOS开发概念开始,然后逐步深入到更复杂的主题,如设计模式、性能优化和最新技术趋势。最后,我们会提供一些实用的代码示例,帮助你更好地理解和实践所学知识。让我们一起踏上这段激动人心的旅程吧!
|
2天前
|
设计模式 Java Android开发
探索安卓应用开发:从新手到专家的旅程探索iOS开发中的SwiftUI框架
【8月更文挑战第29天】本文旨在通过一个易于理解的旅程比喻,带领读者深入探讨安卓应用开发的各个方面。我们将从基础概念入手,逐步过渡到高级技术,最后讨论如何维护和推广你的应用。无论你是编程新手还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的代码示例。让我们一起开始这段激动人心的旅程吧!
|
3天前
|
移动开发 搜索推荐 Android开发
安卓与iOS开发:一场跨平台的技术角逐
在移动开发的广阔舞台上,两大主角——安卓和iOS,持续上演着激烈的技术角逐。本文将深入浅出地探讨这两个平台的开发环境、工具和未来趋势,旨在为开发者揭示跨平台开发的秘密,同时激发读者对技术进步的思考和对未来的期待。
|
6天前
|
安全 Android开发 Swift
安卓与iOS开发:平台差异与技术选择
【8月更文挑战第26天】 在移动应用开发的广阔天地中,安卓和iOS两大平台各占一方。本文旨在探索这两个系统在开发过程中的不同之处,并分析开发者如何根据项目需求选择合适的技术栈。通过深入浅出的对比,我们将揭示各自平台的优势与挑战,帮助开发者做出更明智的决策。
|
2天前
|
存储 Swift iOS开发
探索iOS开发中的SwiftUI框架
【8月更文挑战第29天】本文旨在引导读者理解并掌握SwiftUI框架,通过简明的语言和直观的代码示例,揭示SwiftUI如何让iOS开发变得更加简单高效。文章不仅介绍基础知识,更深入探讨了SwiftUI的核心特性、布局技巧以及与UIKit的差异,为开发者提供实用的学习路径和实践指南。
|
10天前
|
IDE 开发工具 Android开发
探索安卓与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的广阔天地中,安卓和iOS两大平台各领风骚,引领着技术进步的潮流。本文旨在深入剖析这两个平台在开发过程中的关键差异点,包括编程语言、开发工具、用户界面设计以及市场分布等方面。通过对比分析,我们不仅能更好地理解每个平台的独特优势,还能洞察这些差异如何影响项目决策和最终成果。无论你是开发者还是企业决策者,了解这些内容都将助你一臂之力,在选择适合自己项目的开发平台时做出更明智的决策。