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的一些总结:
警告的处理
- 一个是一个警告标识,不是整行都划线警告,这种可修复可不修复.
- 一个是整行的大警告,这种要修复.整行都警告了肯定是有不合理的地方.
转载于:https://www.cnblogs.com/lyandy/p/5116824.html
iOS 基础 第五天(0811)相关推荐
- iOS基础问答面试题连载-附答案
2017-02-02 timhbw CocoaChina 以下是一些自己收集的比较基础的问题(大神可以忽略),附上答案,方便大家阅读.俗话说得好,基础不牢,地动山摇.文章末尾会提供PDF版的文档,方便 ...
- iOS基础——通过案例学知识之UITableView
iOS基础--通过案例学知识之UITableView 案例一:英雄联盟展示 对于UITableView的知识点特别多,因为它是iOS用得最多控件之一,我会尽我最大努力和语言的组织,将所有知识点介绍到位 ...
- 黑马程序员-iOS基础-Objective-C基础(六)内存管理
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 黑马程序员-iOS基础-Objective-C基础(六)内存管理 一.内存管理的必要性 移动设备 ...
- Docker | Docker技术基础梳理(五) - Docker网络管理
Docker | Docker技术基础梳理(五) - Docker网络管理 链接: 原文链接 原文链接: https://gitbook.cn/books/5b8f3c471966b44b00d265 ...
- git 分支复制_Git基础知识(五)
Git基础知识(五) 分支 都说Git的分支是它的必杀技特性,由于没有接触过太多的版本管理工具,就使用过的SVN来说,两者真的差别巨大.SVN创建一个分支,需要将内容复制一遍!这个时间真的是非常的漫长 ...
- Android AOSP基础(五)不会调试系统源码,还搞什么Android?
本文首发于微信公众号「刘望舒」 关联系列 Android AOSP基础系列 Android系统启动系列 应用进程启动系列 Android深入四大组件系列 Android深入理解Context系列 An ...
- IOS基础之iPad的屏幕旋转方向判断
IOS基础之iPad的屏幕旋转方向判断 #pragma mark - 屏幕旋转 - (void)viewWillTransitionToSize:(CGSize)size withTransition ...
- IOS基础之segue使用,
IOS基础之segue使用, segue是接线,接入的意思.控制器与控制器之间的连线. sourceViewControl来源控制器 destinationViewController 目标控制器,以 ...
- IOS基础之打砖块项目演练
IOS基础之打砖块项目演练 本项目涉及CADisplayLink核心动画,各个控件的使用,运行循环,逻辑判断等,if和for,frame坐标的改变,CGPoint结构体,成员变量的赋值,两种手势,拖拽 ...
最新文章
- ThreadLocal到底有没有内存泄漏?
- 人工智能技术类资源汇聚
- VS网站开发的发布部署的不同情况说明
- TCP窗口大小的利与弊转载自
- hive 行转列和列转行的方法_Hive超详细存储
- 轻松理解spring IOC
- java不用析构函数,堆栈分配的类--C发生不需要的析构函数调用
- 如果波音公司破产,对美国经济的影响有多大?
- Context是怎么在Go语言中发挥关键作用的
- C++之指针探究(十二):指针、下标、数组及其作函数参数
- python单例模式有什么用_python单例模式是什么
- 当下推荐系统的分析和关于长尾效应的解决猜想
- freenom 加 cloudflare免费域名申请
- IDEA下载源码报错 Cannot reconnect.
- 如何写好绩效考核的年终总结?分享一些技巧
- 苹果设计可变色Apple Watch表带,智能穿戴玩法多
- UI设计要学习哪些软件
- 数据逻辑结构 的 二元组表示法
- Debian11之Docker稳定版本安装
- 通信工程学python吗_通信工程专业要学的软件们!
热门文章
- 2018 Multi-University Training Contest 1
- 1500ml等于多少l_发动机1.5T、2.0T大概等于多少L?涡轮增压就一定比自然吸气好?...
- 向对象中添加数据_在RMarkdown编译HTML文件中添加数据下载按钮
- python杨辉三角函数_Python算法之六:杨辉三角
- OpenGL基础29:深度测试
- bzoj 3238: [Ahoi2013]差异(后缀数组+单调栈)
- bzoj 4956: [Wf2017]Secret Chamber at Mount Rushmore(最短路)
- 超级卡特兰数(bzoj 4706: B君的多边形)
- 平均值(Mean)、方差(Variance)、标准差(Standard Deviation)
- grafana设置mysql为数据源,并进行可视化