指针初步了解

2018-01-07  本文已影响3人  coding_Liu

结构体和类

本质区别: 类的本质是结构体,但是指针指向一个类 和指向一个结构体是不同的概念

例证:

nsstring (oc) 是类 ----- 指针指向是相当于浅拷贝
string (swift) 是结构体------指针指向是相当于深拷贝

测试代码如下(是测试了类能改变,结构体改变不了,从而得出上面结论)

//  ViewController.swift
//  指针测试
//
//  Created by Admin on 2017/12/29.
//  Copyright © 2017年 刘普昌. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        var list = [bb]()
        for index in 0...4 {
            let b = bb.init(str: "\(index)")
            list.append(b)
        }
        let change = list[0]
        change.str = "ZHESHIDI!"
        for index in 0...list.count-1 {
            print(list[index].str!)
        }
        
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    class bb {
        init(str: String) {
            self.str = str
        }
        var str: String?
    }
}

控制台数据

ZHESHIDI!
1
2
3
4
上一篇下一篇

猜你喜欢

热点阅读