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 ...
随机推荐
- [改善Java代码]避免对象的浅拷贝
建议43: 避免对象的浅拷贝 我们知道一个类实现了Cloneable接口就表示它具备了被拷贝的能力,如果再覆写clone()方法就会完全具备拷贝能力.拷贝是在内存中进行的,所以在性能方面比直接通过ne ...
- 关于JDK中的总结和基本知识总结
人机交互的图形化界面(GUI) 命令行方式(CLI command line interface) JDK有不同的版本(linux,mac os, windows) Java 的跨平台性. 软件放到 ...
- Linux 命令 - jobs: 显示后台作业的状态信息
命令格式 jobs [-lnprs] [jobspec ...] jobs -x command [args] 命令参数 -l 额外显示作业的进程 ID. -n 只列出状态发生变化的进程. -p 只列 ...
- HDOJ2030汉字统计
汉字统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 和阿文一起学H5-- H5排版八大套路
二.中心型 三.倾斜型 四.三角形 5.全图形 6.渐变型 7.蒙版型 \ 8.骨骼型 实例
- BootStrap glyphicons字体图标
本章将讲解Bootstrap glyphicons字体图标,并通过一些实例了解它的使用,字体图标是在 Web 项目中使用的图标字体.字体图标在下载的Bootstrap的fonts文件夹中 本章将讲 ...
- Bootstrap两端对齐的导航实例
Bootstrap两端对齐的导航,样式剥离出来代码如下: <!DOCTYPE html> <html> <head> <title>Bootstrap ...
- java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据 ...
- 百练_2945 拦截导弹(DP)
描述 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹来袭 ...
- 值初始化-new
程序如下#include<iostream>using namespace std; int main(){ int *a=new int(1); int *b ...