zoukankan      html  css  js  c++  java
  • Object C基础篇()

    什么是协议
    是一种语法  像现实中的 劳动协议 等
    规范接口  实现对象之间的通信
    只是声明方法  遵守协议的类  来实现
    方法有  必须实现 和不必须实现两种
    常用于 代理 深浅拷贝  归档(NScoding)  规范接口
    不同的类   想做相同的事情  常用协议规范他们的行为  进而达到规范接口的目的
    oc没有多继承  所以用协议
    比如 以后公司里 代码的封装 不同的类 常用 协议规范
    arc
    1.ios5之后 出现的 一种 内存自动管理机制*(还会自动检测 数据类型)
    不需要 像以前一样 通过 retain 使引用计数器
    +1,或者手动添加release使引用计数器减一
    或者 AUtolease

    不能显示调用 deleaoc

    retain/copy
    使用copy必须遵守NScoping协议
    retain 使对象引用计数器+|
    assign直接赋值 不会是对象引用计数器加减
    autorelease把对象的地址 放到离他最近的 自动释放池里 延时释放
    dealloc 对象的引用计数器减为0的时候 自动调用 dealloc

    、、、、、、、、、、、、、
    self.name =XX是一个set方法 可以KVO监听(set/kvc)内部考虑内存管理
    _name只是一个简单的变量赋值,在ARC下要考虑内存 ,因为默认这是一个强引用指针

    类别
    升级一个类、给原有的类增加方法 2不能增加属性
    3继承 父类所有的方法和属性(包括父类用类别增加的方法也能继承)
    strong weak
    是ARC的语法,weak 弱引用指针 weak 指向的对象 可以直接赋值,而且 一旦这个对象被销毁,weak修饰的指针置为nil
    strong 是强引用指针,会使引用计数器 自动加+1

    weak/asign
    1都有直接赋值的意思
    2weak 是修饰弱引用指针的,是ARC的语法。asign在ARC和MRC下都能用,ARC下只能修饰一些基本数据类型,MRC下也可以是修饰弱引用对象地址。

    混编
    在工程target设置中
    arc  -fno-objc-arc
    -fobjc-arc
    o-c多继承
    用协议代替但 本质是没有多继承的,只是可以遵守多个协议,也能有继承多个类的效果,
    实现多个协议方法,进而有多继承的效果,只是类比,但没有毛线的关系。
    o-c有没有私有变量,和私有方法,如果没有 怎么实现

    成员变量默认是protect的 受保护的,也可以修饰成私有的provate,
    但是 没有私有方法
    在声明部分不声明(或者在类的匿名类别中声明) 在类的实现部分 实现,实现私有的效果,但是本质是没有私有方法的,因为可以用选择器进行访问,这就是o-c的动态机制,根本没有真正的私有

    #include#import@class
    #import不用添加条件编译#include必须要条件编译 防止头文件多次被包含导致重复定义
    @class前向引用申明,目的是防止,相互包含,告诉编译器,我后面会声明,现在这里定义一下,请放行。


    只copy 对象引用  ()归档时深拷贝

    MVC 框架设计模式好几十了,现在c层过重,降低了编辑效率,所有有一种编辑叫 MVVM

    是对象独立化  代码复用 增强健壮性 降低软件成本
    观察者模式
    通知,KVO

  • 相关阅读:
    读写锁机制原理
    jvm
    (WPF) 再议binding:点击User Control时,User Control变换颜色或做其他的处理。
    (WF)
    (C# ) 解析XML。
    (C#) 调用执行批处理文件
    (WPF, Service) 删除注册表中的USB Enum值.
    (C#) 文件操作
    (C#) Parse xml 时, 返回的node值总是null。
    (PowerShell) Managing Windows Registry
  • 原文地址:https://www.cnblogs.com/ZSongChao001/p/4957304.html
Copyright © 2011-2022 走看看