美文网首页带我飞4iOS点滴iOS-swift
使用 Block 代码块进行实例化操作

使用 Block 代码块进行实例化操作

作者: PonyCui | 来源:发表于2015-12-02 00:09 被阅读300次

Swift 为我们提供一种非常优雅的类实例化语法, Block 代码块实例化。

使用 Block 代码块实例化,可以减少不必要的命名冲突,同时可以让代码看起来更舒服。

使用 Block 代码块实例化的另一个好处是内存的管理会变得更简单。

让我们看一个例子吧! 假设我们有一个Child类。

class Child {
    
    var name: String?
    var age: Int?
    
}

一个正常的实例化写法是这样的。

let myChild = Child()
myChild.name = "Pony"
myChild.age = 8

但是,使用 Block 进行实例化,可以这样写。

let myChild: Child = {
    let item = Child()
    item.name = "Pony"
    item.age = 8
    return item
}()

在一个类方法中使用 Block 进行实例化,如果 Block 中有 self 的引用,不要忘记添加 [unowned self] 标签,否则可能会有循环引用问题。

import UIKit

class Child {
    
    var name: String?
    var age: Int?
    
}

class Main {
    
    let name = "Pony"
    let age = 8
    
    func sayHello() {
        let myChild: Child = { [unowned self] in
            let item = Child()
            item.name = self.name
            item.age = self.age
            return item
        }()
    }
    
}

let x = Main()
x.sayHello()

相关文章

  • 使用 Block 代码块进行实例化操作

    Swift 为我们提供一种非常优雅的类实例化语法, Block 代码块实例化。 使用 Block 代码块实例化,可...

  • iOS block的使用

    block的使用 Block 又称为“块” 或 “代码块”,作用是用来保存代码。block基本格式: 1、使用ty...

  • iOS开发-通知的基本使用

    通知传值 界面之间的传值有很多方法,最基本的是可以实例化对象进行传值,也可以使用block块或者是使用通知进行传值...

  • (二)block、delegate修饰词

    一、Block 1、使用copy因为block属于代码块,存放在栈区,释放是由编译器决定的,如果不对block进行...

  • generate语法学习

    generate 作用:可以进行实例化和赋值操作,对于提高代码简洁度很有帮助 使用:首先定一个一个genvar循环...

  • Block的基本使用

    1.Block代码块的基本使用 Block的作用Block主要用来保存一段代码Block可以封装一段代码,这段代码...

  • Ruby语法(代码块和迭代)

    代码块(Block)可看做一个没有名字的方法,代码块也是对象,它是Proc类的实例. 两种形式的代码块 代码块也可...

  • ios的block原理

    block:代码块,函数指针和指针 block:使用copy关键字 堆block:@propetry 栈block...

  • Java中static块执行时机

    Java中static块执行时机 演示例子 在使用static进行初始化的操作,怎么也执行不了!代码如下: 怎么没...

  • iOS文件系统(操作文件)

    1.操作文件(使用NSFileManager进行如创建,复制,删除等操作) 通过一个实例代码记录主要操作方法,下面...

网友评论

    本文标题:使用 Block 代码块进行实例化操作

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