block对外部变量的内存管理
代码块在ios中通常用于回调,本文主要介绍block对外部变量的管理机制。我们知道如果要在block中使用block外面的变量,如果该变量是局部变量,就要先将其申明为__block类型。为什么呢?这就涉及到block对外部变量的内存管理。
一、基本数据类型
先看下面测试代码:
//局部变量
- (void)localDataTest
{...
分类:
移动开发 时间:
2015-03-21 15:42:11
阅读次数:
1005
Objective-C总Runtime的那点事儿(一)消息机制最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题。当然还有一些其他问题也几乎必问,例如:RunLoop,Block,内存管理等。其他的问题如果有机会我会在其他文章中介绍。本篇文章...
分类:
移动开发 时间:
2015-01-18 15:36:08
阅读次数:
357
最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题。当然还有一些其他问题也几乎必问,例 如:RunLoop,Block,内存管理等。其他的问题如果有机会我会在其他文章中介绍。本篇文章主要介绍RunTime。RunTime简称运行时。就是系统在...
分类:
移动开发 时间:
2015-01-04 13:19:48
阅读次数:
736
ViewController.h
#import
@interface ViewController : UIViewController
{
UIImage *_image;
NSInteger _index;
}
@endViewController.m
#import "ViewController.h"
#import "Person.h"
@interface...
分类:
其他好文 时间:
2014-10-23 14:26:57
阅读次数:
161
block默认是存储在栈内存中的,需要做一些操作才能到堆中MRC情况下-------------------这种情况下block创建以后需要做block_copy()操作才能复制到堆中,如果block在栈中,是不会对block内使用的对象做操作的但是如果你的block已经拷贝到了堆中,你就要注意了,...
分类:
其他好文 时间:
2014-07-30 03:16:03
阅读次数:
218