• iOS 基础 第五天(0811)


    0811

    ARC
    • ARC判断准则:只要没有强指针指向对象,就会释放对象

    指针

    指针分两种:

    • 强指针:默认情况下,搜有的指针都是强指针
    • 弱指针:week修饰(一个是控件,一个是delegate代理)

    循环强引用的情况参见 iOS学习(一)

    注意非arc的情况是retain和assign组合,arc的情况是strong和week组合


    下面是block的使用方法

    block在C#用叫回调,在Android中叫匿名方法

    block是由函数演变而来

    block是用来保存代码块的,方便以后随时调用

    block的标志:^

    block有返回值

    block有形参

    不能随意访问外部的变量,如果访问需要加__block

    调用方式基本和方式一样

    就如这样:(返回值)(^block名称)(形参) = ^(形参){}

    下图是一个典型的block:

    1、block的使用场合:多在多线程、异步任务、集合遍历、集合排序、动画转场等


    下面是protocal的用法######

    protocal协议主要用在两种模式上,分别是代理模式和观察者模式

    protocal就是协议,只要一说到协议就是指protocal.协议只需要一个.h头文件就可以了,因为它需要包含方法的声明即可,方法的实现让代理去实现即可.一般协议和其类的声明@interface写在一起._

    以下三点非常重要:

    1、用来声明一大堆方法,可以交给任何一个类去实现,只要这个类遵循的这个协议

    2、只要某个类遵循了某个协议,就相当于拥有这个协议中的所有方法声明

    3、只要父类遵循了某个协议,就相当于子类也遵循了.

    4、protocal中方法默认是@required,可以实现,也可以不实现,不实现只会警告不会报错.和C#中的接口不一样,你实现了某个接口,就必须实现接口中的所有方法.如下图所示:

    只要这个类遵循了这个协议,成为了代理,实现了协议中的某些方法,那么这个类就具有了调用代理者的监听和通知的功能

    下面是protocal的一些总结:


    警告的处理
    • 一个是一个警告标识,不是整行都划线警告,这种可修复可不修复.
    • 一个是整行的大警告,这种要修复.整行都警告了肯定是有不合理的地方.

  • 相关阅读:
    论分治与归并思想
    关于缩短cin时间的方法
    【lower_bound、upperbound讲解、二分查找、最长上升子序列(LIS)模版】
    getDomain(url)-我的JavaScript函数库-mazey.js
    jQuery-PHP跨域请求数据
    ASP-Server.Transfer-Response.Redirect
    jQuery获取相邻标签的值
    分界线<hr/>
    jQuery获取input复选框的值
    Bootstrap支持的JavaScript插件
  • 原文地址:https://www.cnblogs.com/lyandy/p/5116824.html
Copyright © 2020-2023  润新知