IOS中OC的BLOCK问题

原创 2015年07月08日 20:23:38

今天去面试,面试官问到了oC中的BLOCK问题,然后觉得OC就是一个无名函数,然后使用上没有啥区别啊?


问题就在这:OC的BLOCK中有一个self的东东,这个东西是一个强应用的东东,如果这个self出现在你的block中,那你估计多半死掉了;

所有面试官在问道block的问题时候,最关注这个问题,因为强引用在对象被释放掉,而block没有执行完的时候,self的内容就死在了内存里,只有程序被系统干掉的时候,这一个区域的内存才会被释放。

解决办法就是:

-(void) _week *me = self

block{

..=self

}


将一个弱引用的指针穿进去,因为如引用会在对象释放掉的时候自动释放。


相关文章推荐

iOS OC语言: Block底层实现原理

http://www.jianshu.com/p/e23078c11518 先来简单介绍一下Block Block是什么?苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点...
  • jeffasd
  • jeffasd
  • 2016年04月28日 14:59
  • 1308

[黑马IOS自学第十七篇]OC BLOCK学习

block概念和基本使用 SEL id BLOCK BOOL Boolean 衍生的数据类型 基本概念       定义个变量去存储代码块         函数名就是地址无需加&取地址符   ...
  • wadeAD
  • wadeAD
  • 2016年01月07日 14:59
  • 388

OC笔记 - iOS适配、block内存泄露、电话短信邮件等小功能(2015.3.27)

1.IOS适配问题     IOS6启动app时launchImage中出现了状态栏,而IOS7并没有出现这种情况。是因为IOS6的View不包含状态栏。在解决这个适配问题中,通常在项目勾选“Hid...

ios开发-OC中ARC、block和protocol的学习

----------android培训、java培训、java学习型技术博客、期待与您交流!----------   今天,我学习了OC中ARC,block,和protocol,以下是具体内容:  ...

【iOS】简述下OC block的实现

block 实际上是OC 对闭包closure的实现 block的数据结构先来看下block的结构示意图及各组成部分含义: 1. isa:该对象是什么 2. flags:block附加信息 3....

黑马程序员_iOS开发之OC之block块与@protocol协议

一、block的使用 1> 如何定义block变量  int (^sumblock)(int, int);  //--------------------------   ...

iOS中OC:block底层实现原理

Block是什么?苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,Block可以在任何时候执行。 Block和函数的相似性:(1)可以保存代码(2)有返回值(3)有形参...

iOS编程——OC viewController 传值常用方法Delegate和Block的使用

写了个例子,简单介绍了下Delegate和Block的使用,注意点都在注释里,直接上代码了: 1.FirstViewController.h: #import @interface First...

IOS学习之OC语言BLOCK和协议

一、BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行。 BOLCK和函数的相似性:(1...

黑马程序员—IOS基础之OC—block和protocol

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! —— 第一章 block 一、block的概念和基本的使用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS中OC的BLOCK问题
举报原因:
原因补充:

(最多只允许输入30个字)