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

警告的处理
- 一个是一个警告标识,不是整行都划线警告,这种可修复可不修复.
- 一个是整行的大警告,这种要修复.整行都警告了肯定是有不合理的地方.
iOS 基础 第五天(0811)的更多相关文章
- iOS基础UI控件介绍-Swift版
iOS基础UI控件总结 iOS基础控件包括以下几类: 1.继承自NSObject:(暂列为控件) UIColor //颜色 UIImage //图像 2.继承自UIView: 只能相应手势UIGest ...
- IOS基础学习-2: UIButton
IOS基础学习-2: UIButton UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...
- Bootstrap<基础十五> 输入框组
Bootstrap 支持的另一个特性,输入框组.输入框组扩展自 表单控件.使用输入框组,可以很容易地向基于文本的输入框添加作为前缀和后缀的文本或按钮. 通过向输入域添加前缀和后缀的内容,您可以向用户输 ...
- iOS 基础日记-修饰符
今晚随便温习了一下iOS 基础关于修饰符这块的东西,下面简单的来描述一下,其中有的也是在网络学习到的: strong与weak是由ARC新引入的对象变量属性 ARC的解释:ARC引入了新的对象的生命周 ...
- MySQL基础(五)——视图
MySQL基础(五)--视图
- iOS基础问答面试
<简书社区 — Timhbw>iOS基础问答面试题连载(一)-附答案:http://www.jianshu.com/p/1ebf7333808d <简书社区 — Timhbw> ...
- [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)
A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能 1.按钮点击后,显示为“已下载”,并且不 ...
- [置顶] IOS 基础入门教程
IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...
- Java语言基础(五)
Java语言基础(五) 一.浮点数 浮点数就是小数,其标准是IEEE 754,用指数和尾数表示 例如30000=3*10000=3*10^4 其中4是指数,3是尾数 Java中,浮点数有float ...
随机推荐
- 使用openoffice将word文件转换为pdf格式遇到问题:The type com.sun.star.lang.XEventListener cannot be resolved. It is indirectly referenced from required
The type com.sun.star.lang.XEventListener cannot be resolved. It is indirectly referenced from requi ...
- Linux基本命令之逻辑测试一
1.判断一个命令的结果使用test,其返回0,或一个整数.返回0表示true,返回整数表示错误码 2.获取上一个命令的返回结果使用$? 3.例如 我的服务器上面存在/home/www这样一个文件夹,所 ...
- [改善Java代码]用偶判断,不用奇判断
建议21: 用偶判断,不用奇判断 public class Client { public static void main(String[] args) { Scanner in = new Sca ...
- hdu 4585 set应用
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #i ...
- hdu 2196 树形dp
思路:先求以1为根时,每个节点到子节点的最大长度.然后再次从1进入进行更新. #include<iostream> #include<cstring> #include< ...
- hdu 4005 边连通度与缩点
思路:先将图进行缩点,建成一颗树,那么如果这是一条单路径树(即最大点度不超过2),就不在能删的一条边,使得不连通.因为将其头尾相连,形成一个圈,那么删任意一条边,图都是连通的. 上面的是无解的情况,如 ...
- 本机连接虚拟机Oracle时报错的解决办法
虚拟机安装了Oracle服务器(桌面类)和客户端,里面使用plsql连接自己没有问题. 在本机连接虚拟机没有成功.虚拟机的地址是192.168.126.132,已经确认本机能ping通虚拟机. 先是报 ...
- JMS - QueueBrowser
QueueBrowser 是一个专用对象,提供提前浏览 Queue 上的排队消息的功能,而实际上并没有真正消费这些消息.这是点对点消息传送模型的独有特性.从 QueueBrowser 获得消息是该队列 ...
- ActiveMQ(5.10.0) - Configuring the JAAS Authentication Plug-in
JAAS provides pluggable authentication, which means ActiveMQ will use the same authentication API re ...
- ios 多线程-GCD-NSOperation
一.线程间的通讯 1.使用NSObject类的方法performSelectorInBackground:withObject:来创建一个线程. 具体的代码:隐式创建,自动启动 [Object per ...