• Swift学习(3面向对象)


    swift面向对象

    1. 在swift中,默认在同一个项目中(同一个命名空间下),所有的类都是共享的,不需要import 所有的属性 var 也可以直接访问到

    2.在swift中,所有的类都默认有一个命名空间,就是项目名称

    3. ()  -> alloc  init。  swift中对应一个init()构造函数,作用是给成员变量分配内存空间并初始化

    4.构造函数的写法:

    一:必选属性的构造方法

    1.给自己的属性分配内存空间并设置初始值

    2.调用父类的构造函数,给父类的属性分配雷村空间设置初始值

    3.NSObject没有属性,只有一个成员变量 isa

    5.重载函数方法:函数名相同, 但是参数和个数不同。可以给自己的属性在外部调用的时候赋初始值。OC是没有重载的

    6.如果重载了构造函数,并且没有实现父类的init方法, 系统将不再提供init() 构造函数。因为默认的构造函数是不能给本类的属性分配内存空间

    7.控制台用 p 命令获取对象信息

    8.构造函数(KVC),在手机开发中内存很宝贵,有些属性并不是必须分配空间的。 

    延迟加载:在需要的时候才创建

    如果是模型属性的时候,如果是对象,通常都是可选的、简化写构造函数的时候的代码

    KVC的方法是OC的方法,在运行时给对象发送消息,要求对象已经实例化完成!

    在使用KVC方法之前,应该使用spuer.init()实例化

    给基本数据类型初始化是不能设置成可选的,必须提前设置初始值。否则KVC会崩溃

    如果是私有属性 private  ,使用KVC设置值的时候,同样会无法设置,KVC会崩溃

    在swift中,属性和方法设置private,是绝对禁止外部访问的!不会像OC中一样通过运行时获取到所有的方法和属性

    同OC一样,字典中的key如果类中没有队形的属性与之对应,则需要重写setvalueforundifindkey

    9.Swift 运行时加载属性列表:类似OC

    1.获取’类’的属性列表

    2.遍历数组

    3.根据下标获取属性:objc_property_t?

    4.获取属性的名称的C语言字符串

    5.转换成string

    6.释放C语言对象

    7.推荐使用guard 依次判断可选项

    10.基本数据类型,在OC中没有可选,如果定义成可选,运行时同样获取不到,使用KVC会崩溃

    11.private 的属性,使用运行时是,同样获取不到属性,使用KVC会崩溃

    12.闭包的所有参数是需要自己写的,OC是直接带入

    13.练习用URLsession 加载百度

    14.便利构造函数

    1.判断条件,只有条件满足才实例化对象

    2.简化对象的创建

    3.本身不负责属性的创建和初始化操作

    4.便利构造函数允许返回nil,正常的构造函数一定会创建对象,判定给的参数是否符合条件,如果不符合则返回nil,不会创建对象,减少内存开销!

    5.只有便利构造函数中使用 ‘self.init’ 构造当前对象

    6.没有convenience 关键字的构造函数是负责创建对象的,反之是用来检查条件的,本身是不负责对象的创建

    7.如果要在便利构造函数中使用当前对象的属性,一定要在 self.init 之后

    15.使用便利构造函数重构加法计算器

    1.Swift分类的写法

    2.利用便利构造函数 用分类的方式给一些控件的属性写默认值

    16.实战1:写一个私人通讯录

    //demo下载地址:https://github.com/fushengit/Learn-Swift

  • 相关阅读:
    livereload
    XAMPP Apache 配置多端口和多域名方法
    移动端touch事件实现页面弹动--小插件
    QRCode生成二维码,jq QRCode生成二维码,QRCode生成电子名片
    下拉刷新
    js 中获取 日期
    wcf 的 知识点
    iis 发布失败原因总结
    list 用法的随手记
    字符编码的 文章推荐
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/6842133.html
Copyright © 2020-2023  润新知