关闭

Swift 如何构建一个Self类型的对象

标签: swiftSelf
129人阅读 评论(0) 收藏 举报
分类:

class WangMuMu {

var name: String
/*2.*/
/*
 即使按照  1  里面写的来做依然是不行的
 编译器会提示我们如果我们想要构建一个Self类型的对象需要有required关键字来修饰初始化方法,
 这是因为Swift必须保证当前类和子类都能相应init这个方法
 */

required init() {

    name = "qq"

}

//构建一个Self类型对象
func copy() -> Self {

   /*1.*/
    /* 我们返回的是当前类型的Self 如果我们写成  let result  = WangMuMu()
    则返回的是它的真实类型WangMuMu,这样编译是不通过的, 这里我们就需要用dynamicType它来做初始化了
    */
    let result  = self.dynamicType.init()

    result.name = "1"

    return result

}

}

尾记
另外dynamicType 还可以来获取一个对象的动态类型
示例
let name: String = “”

print(name.dynamicType)

输出:String

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:27860次
    • 积分:1377
    • 等级:
    • 排名:千里之外
    • 原创:116篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条