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的一些总结:


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

转载于:https://www.cnblogs.com/lyandy/p/5116824.html

iOS 基础 第五天(0811)相关推荐

  1. iOS基础问答面试题连载-附答案

    2017-02-02 timhbw CocoaChina 以下是一些自己收集的比较基础的问题(大神可以忽略),附上答案,方便大家阅读.俗话说得好,基础不牢,地动山摇.文章末尾会提供PDF版的文档,方便 ...

  2. iOS基础——通过案例学知识之UITableView

    iOS基础--通过案例学知识之UITableView 案例一:英雄联盟展示 对于UITableView的知识点特别多,因为它是iOS用得最多控件之一,我会尽我最大努力和语言的组织,将所有知识点介绍到位 ...

  3. 黑马程序员-iOS基础-Objective-C基础(六)内存管理

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 黑马程序员-iOS基础-Objective-C基础(六)内存管理 一.内存管理的必要性 移动设备 ...

  4. Docker | Docker技术基础梳理(五) - Docker网络管理

    Docker | Docker技术基础梳理(五) - Docker网络管理 链接: 原文链接 原文链接: https://gitbook.cn/books/5b8f3c471966b44b00d265 ...

  5. git 分支复制_Git基础知识(五)

    Git基础知识(五) 分支 都说Git的分支是它的必杀技特性,由于没有接触过太多的版本管理工具,就使用过的SVN来说,两者真的差别巨大.SVN创建一个分支,需要将内容复制一遍!这个时间真的是非常的漫长 ...

  6. Android AOSP基础(五)不会调试系统源码,还搞什么Android?

    本文首发于微信公众号「刘望舒」 关联系列 Android AOSP基础系列 Android系统启动系列 应用进程启动系列 Android深入四大组件系列 Android深入理解Context系列 An ...

  7. IOS基础之iPad的屏幕旋转方向判断

    IOS基础之iPad的屏幕旋转方向判断 #pragma mark - 屏幕旋转 - (void)viewWillTransitionToSize:(CGSize)size withTransition ...

  8. IOS基础之segue使用,

    IOS基础之segue使用, segue是接线,接入的意思.控制器与控制器之间的连线. sourceViewControl来源控制器 destinationViewController 目标控制器,以 ...

  9. IOS基础之打砖块项目演练

    IOS基础之打砖块项目演练 本项目涉及CADisplayLink核心动画,各个控件的使用,运行循环,逻辑判断等,if和for,frame坐标的改变,CGPoint结构体,成员变量的赋值,两种手势,拖拽 ...

最新文章

  1. ThreadLocal到底有没有内存泄漏?
  2. 人工智能技术类资源汇聚
  3. VS网站开发的发布部署的不同情况说明
  4. TCP窗口大小的利与弊转载自
  5. hive 行转列和列转行的方法_Hive超详细存储
  6. 轻松理解spring IOC
  7. java不用析构函数,堆栈分配的类--C发生不需要的析构函数调用
  8. 如果波音公司破产,对美国经济的影响有多大?
  9. Context是怎么在Go语言中发挥关键作用的
  10. C++之指针探究(十二):指针、下标、数组及其作函数参数
  11. python单例模式有什么用_python单例模式是什么
  12. 当下推荐系统的分析和关于长尾效应的解决猜想
  13. freenom 加 cloudflare免费域名申请
  14. IDEA下载源码报错 Cannot reconnect.
  15. 如何写好绩效考核的年终总结?分享一些技巧
  16. 苹果设计可变色Apple Watch表带,智能穿戴玩法多
  17. UI设计要学习哪些软件
  18. 数据逻辑结构 的 二元组表示法
  19. Debian11之Docker稳定版本安装
  20. 通信工程学python吗_通信工程专业要学的软件们!

热门文章

  1. 2018 Multi-University Training Contest 1
  2. 1500ml等于多少l_发动机1.5T、2.0T大概等于多少L?涡轮增压就一定比自然吸气好?...
  3. 向对象中添加数据_在RMarkdown编译HTML文件中添加数据下载按钮
  4. python杨辉三角函数_Python算法之六:杨辉三角
  5. OpenGL基础29:深度测试
  6. bzoj 3238: [Ahoi2013]差异(后缀数组+单调栈)
  7. bzoj 4956: [Wf2017]Secret Chamber at Mount Rushmore(最短路)
  8. 超级卡特兰数(bzoj 4706: B君的多边形)
  9. 平均值(Mean)、方差(Variance)、标准差(Standard Deviation)
  10. grafana设置mysql为数据源,并进行可视化