美文网首页
swift 函数基本使用和类定义

swift 函数基本使用和类定义

作者: 黑色桃芯 | 来源:发表于2016-09-24 17:03 被阅读106次

基本函数使用

  • 1.没有参数没有返回值
//about函数名,Void为返回值
func about() -> Void {
    print("iPhone7s Plus")
}
//无返回值 省略写法
func about1() {
    print("iPhone7s")
}
//调用
about()
  • 2.有参数没有返回值
func callPhone(phoneNum : 
String) {
    print("打电话给\(phoneNum)")
}
//调用
callPhone("+86 110")
  • 3.没有参数有返回值
func readMessage() -> String {
    return "吃饭了吗?"
}
//调用
print(readMessage())
  • 4.有参数有返回值
func sum(num1 : Int, num2 : Int) -> Int {
    return num1 + num2
}
//调用
sum(20, num2: 30)

类的定义

1.类的定义
2.创建类对应的对象
3.给类的属性赋值
1> 直接赋值
2> 通过KVC赋值
4.可以重写setValue(value: AnyObject?, forUndefinedKey key:,那么字典中没有的字段可以在类中没有对应的属性
5.override : 重写, 如果写的某一个方法是对父类的方法进行的重写,那么必须在该方法前加上override

  • 1.类的定义
//Person类种有个属性age
class Person : NSObject {
    var age : Int = 0
}
//调用
let p = Person()
p.age = 20
//或者使用KVC赋值
p.setValuesForKeysWithDictionary(["age" : 18])
  • 重写方法
class Person : NSObject {
    var age : Int = 0
    
    // override : 重写, 如果写的某一个方法是对父类的方法进行的重写,那么必须在该方法前加上override
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
}
//调用  原本没有name属性,通过重写KVC
p.setValuesForKeysWithDictionary(["age" : 18, "name" : "why"])
  • 2.类中的属性定义

nil算swift中的特殊类型,不可直接赋值,要使用可选类型

class Student: NSObject {
    // 定义属性
    // 定义存储属性
    var age : Int = 0
    var name : String?  //var name : String? = nil
    
    var mathScore : Double = 0.0
    var chineseScore : Double = 0.0
    
    // 定义计算属性: 通过别的方式计算到结果的属性,称之为计算属性
//或者使用下面的 定义方法 返回平均值
    var averageScore : Double {
        return (mathScore + chineseScore) * 0.5
    }
    
    // 定义类属性: 类属性是和整个类相关的属性.而且是通过类名进行访问
    static var courseCount : Int = 0
    
    /*
    // 定义方法,可以返回平均成绩
    func getAverageScore() -> Double {
        // 在swift开发中,如果使用当前对象的某一个属性,或者调用当前对象的某一个方法时,可以直接使用,不需要加self
        return (mathScore + chineseScore) * 0.5
    }
    */
}
// 创建对象
let stu = Student()

// 给类属性进行赋值
Student.courseCount = 2

// 给对象的属性赋值
stu.age = 10
stu.name = "yz"
stu.mathScore = 78
stu.chineseScore = 59.9

//打印age和name
print(stu.age)
// print(stu.name!) 或者下面
if let name = stu.name {
    print(name)
}

//打印 定义属性
let averageScore = stu.averageScore
print(averageScore )

构造函数

//OC 写法
@interface Person : NSObject

- (instanceType)initWithName:(NSString *)name age: (int)age

@end

//swift 写法
class Person: NSObject {
    var name : String?
    var age : Int = 0
    
    override init() {
        // 在构造函数中,如果没有明确super.init(),那么系统会帮助调用super.init()
        //init为系统方法,这里算重写,需要加上,override 
        // super.init()
        
        print("------")
    }
    
    // 自定义构造函数
    init(name : String, age : Int) {
        self.name = name
        self.age = age
    }
}
let p = Person()
//调用
let p1 = Person(name: "why", age: 18)
//打印
print(p1.age)
print(p1.name!)

监听类的属性变化

class Person: NSObject {
    // 属性监听器
    var name : String? {
        // 属性即将改变时进行监听(不常用)
        willSet {
            print(name)
            print(newValue)
        }
        
        // 属性已经改变时进行监听(常用)
        didSet {
            print(name)
            print(oldValue)
        }
    }
}

相关文章

  • swift 函数基本使用和类定义

    基本函数使用 1.没有参数没有返回值 2.有参数没有返回值 3.没有参数有返回值 4.有参数有返回值 类的定义 1...

  • Swift 中类的使用

    Swift 中类的使用 主要内容 类的介绍和定义 类的属性 类的构造函数 一. 类的介绍和定义 Swift也是一门...

  • Swift学习-类&& 类的构造函数&&

    Swift中类的使用 主要内容 类的介绍和定义 类的属性 类的构造函数 一. 类的介绍和定义 Swift也是一门面...

  • 使用Playground快速练习Swift语法--类与面向对象

    Swift作为现代语言,面向对象编程是必须支持的。 类定义和基本使用 init是类的构造函数,deinit为析构函...

  • Swift学习笔记(二)

    Swift函数 Swift函数包含参数类型和返回值类型 函数定义 Swift使用关键字func定义函数。 函数定义...

  • 构造函数;重载构造函数

    构造函数介绍: 定义类使用class,swift可以没有父类,但有些功能无法使用,譬如:KVC 类里可以定义: 可...

  • Swift笔记<十>类的基本使用

    类的介绍和定义 Swift也是一门面向对象的开发语言 在Swift中如何定义类呢 类的属性和方法 类的析构函数

  • swift学习笔记②

    Swift学习笔记 - 文集 语法篇 一、函数 函数定义 Swift 定义函数使用关键字 func,functio...

  • Swfit语法tips

    关于函数和闭包的介绍 在Swift中定义的Enum,OC中使用 Swift中定义如下,注意@objc 在OC中使用...

  • Swift5.x-闭包(中文文档)

    引言 继续学习Swift文档,从上一章节:函数,我们学习了Swift函数相关的内容,如函数的定义和使用、函数参数、...

网友评论

      本文标题:swift 函数基本使用和类定义

      本文链接:https://www.haomeiwen.com/subject/oqvxyttx.html