zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    centos7 修改中文字符集
    Can't locate Data/Dumper.pm in perl5的处理
    MySQL crash-safe replication(3): MySQL的Crash Safe和Binlog的关系
    MySQL crash-safe replication(2):
    MySQL crash-safe replication(1)
    《Linux性能调优指南 》全书
    Oracle Database 12c Preinstall Steps for Oracle Linux Simplified
    MySQL的binlog2sql闪回
    Python pip 安装与使用
    LSM树由来、设计思想以及应用到HBase的索引
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/6842133.html
Copyright © 2011-2022 走看看