1、存储属性: 就是存储一个常量或变量
/// 存储型属性
let aaa = "aaa" /// 相当于供整个类使用
/// 懒加载也属于存储型属性 ⚠️是属性oc中是方法
lazy var ccc: [TestModel] = {
let testModle = TestModel()
var arr = [TestModel]()
for _ in 0...99 {
arr.append(testModle)
}
return arr
}()
var num: Int = 100```
2、计算属性: 不直接存储值,而是用get/set来做.可用来操作其他属性值的变化
get: 取, 用来封装取值的过程
set: 设, 用来封装设值的过程
/// 计算型属性(相当于重写set、get 方法的一些属性,在set、get方法中有相应的计算)
var ddd: Int{
/// 想变成只读或者只写的属性,只需要单独留一种set或get方法即可
get {
return num + 11
}
set(d){
num = num + d
}
}
完整的测试代码:
//
// ViewController.swift
// 计算型属性和存储型属性
//
// Created by Admin on 16/12/29.
// Copyright © 2016年 刘普昌. All rights reserved.
//
import UIKit
/// 相当于全局(供所有类使用,可以一起放在全局的一个类中)
class ViewController: UIViewController {
/// 存储型属性
let aaa = "aaa" /// 相当于供整个类使用
/// 懒加载也属于存储型属性 ⚠️是属性oc中是方法
lazy var ccc: [TestModel] = {
let testModle = TestModel()
var arr = [TestModel]()
for _ in 0...99 {
arr.append(testModle)
}
return arr
}()
var num: Int = 100
/// 计算型属性(相当于重写set、get 方法的一些属性,在set、get方法中有相应的计算)
var ddd: Int{
/// 想变成只读或者只写的属性,只需要单独留一种set或get方法即可
get {
return num + 11
}
set(d){
num = num + d
}
}
override func viewDidLoad() {
super.viewDidLoad()
/// 存储型属性
let bbb = "bbb"
print(bbb)
self.ddd = 5 // num = 100 + 5
print(self.ddd) /// result :100 + 5 + 11 = 116 一点问题没有word 哥
print(aaa)
// Do any additional setup after loading the view, typically from a nib.
}
func test() -> () {
print(aaa)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
参考文章: http://blog.csdn.net/xn4545945/article/details/39311027