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

  • 相关阅读:
    leetcode 576. Out of Boundary Paths 、688. Knight Probability in Chessboard
    leetcode 129. Sum Root to Leaf Numbers
    leetcode 542. 01 Matrix 、663. Walls and Gates(lintcode) 、773. Sliding Puzzle 、803. Shortest Distance from All Buildings
    leetcode 402. Remove K Digits 、321. Create Maximum Number
    leetcode 139. Word Break 、140. Word Break II
    leetcode 329. Longest Increasing Path in a Matrix
    leetcode 334. Increasing Triplet Subsequence
    leetcode 403. Frog Jump
    android中webView加载H5,JS不能调用问题的解决
    通过nginx中转获取不到IP的问题解决
  • 原文地址:https://www.cnblogs.com/ZSongChao001/p/4957304.html
Copyright © 2011-2022 走看看