小工具      在线工具  汉语词典  css  js  c++  java

Swift 3.0 类构造函数

Swift学习 额外说明

收录于:92天前

/*
 //类的构造函数
  使用KVC条件
  1> 必须继承自NSObject
  2> 必须在构造函数中,先调用super.init(0
  3> 调用setValueForKeys
  4> 如果字典中某一个key没有对应的属性,则需要重写setValueForKeys方法
 */

class LJPerson : NSObject{
    var name : String = ""
    var age : Int = 0
    var height : Double = 0
    
    init(name:String, age:Int) {
        self.name = name
        self.age = age
    }
    
    //重写init方法
    init(dict : [String : Any]) {
        /*
         一般写法,假如此处有多个变量的话,要写好长好长的
        if let name = dict["name"] as? String {
            self.name = name
        }
        
        if let age = dict["age"] as? Int
        {
            self.age = age
        }
        
        if let height = dict["height"] as? Double
        {
            self.height = height
        }*/
        
        super.init()
        setValuesForKeys(dict)
    }
    
    //倘若不重写init方法的话,就不会出来init()
    override init() {
    }
    
    //重写这个方法,没有定义的key在里面也不会引起奔溃,如下面的key="phonum"
    override func setValue(_ value: Any?, forUndefinedKey key: String) {
    }
}

let pw = LJPerson()
let pfg = LJPerson(name: "sww", age: 18)
let ps = LJPerson(dict: ["name":"swgt","age":18,"height":1.09,"phonum":"139"])

print(ps.name,ps.age)


. . .

相关推荐

额外说明

【Golang】实用技巧-viper读取配置文件路径的两种方式

-一个不甘平凡的普通人,致力于为Golang社区和算法学习做出贡献,期待您的关注和认可,陪您一起学习打卡!!!--- -专栏:算法学习 -专栏:Go实战 -个人主页:个人主页 文章目录 前言 问题描述 解决 前言 在使用viper去寻找配置文件的时候,老

额外说明

EnumSerial\EnumSerial.cpp(275): 错误 C2664: 'RegOpenKeyExW': 无法将参数 2 从 'const char [5]' 转换为 'LPCWSTR'

EnumSerial\EnumSerial.cpp(275): error C2664: “RegOpenKeyExW”: 不能将参数 2 从“const char [5]”转换为“LPCWSTR” 改为

额外说明

企业级实战——畅购商城SpringCloud-JAVA实战商城管理后台——查询所有品牌集合实现

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

TP5+商城小程序—— REST与RESTFul

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

设计模式之优雅配置OSS

小伙伴们,你们好呀!我是老寇! 请点击我,获取源码 目录 一、工厂模式 二、模板模式 三、配置OSS 一、工厂模式 介绍 定义一个创建对象的接口,让其子类决定实例化哪一个工厂类,使其创建过程延迟到子类进行 实现 核心代码 public class Oss

额外说明

activity指定节点审批人

前言 在上一篇,我们演示了一个简单的审批流程各节点顺序审批到流程结束的过程,但在实际业务中,每个审批节点经常会指定审批人的,总不能说,任意一个人进来了都可以对这个流程进行审批吧,这就需要指定任务节点的审批人 1、定义流程文件,指定节点审批人 如下图所示,

额外说明

(二)二叉树的遍历方式

1. 二叉树的主要遍历方式 大的框架上主要有, 纵向 和 横向 两种: 深度优先遍历: 先往深处走, 遇到叶子节点后在往回走; 广度优先 遍历: 一层 一层的 遍历; 这两种遍历方式 也是 图论中 最基本的两种遍历方式; 那么从深度优先遍历和广度优先遍历

额外说明

英语学习笔记2019-10-25

英语学习笔记2019-10-25 We should try to know more about the dynamics of the computer industry so that we can choose a better directio

额外说明

【yolov1】predict.py 推理阶段代码

import numpy as np import torch import cv2 from torchvision.transforms import ToTensor from new_resnet import resnet50 img_ro

ads via 小工具