object-c ARC与block笔记

简介: ioa arc block
Avoiding Retain Cycles with __block
  • To avoid retain cycles

    • use __weak , __block id x

      __block variables are retained under ARC;

      __block id x;//retains x under ARC

    • manually break cycle by setting __block value to nil;
//arc
dispatch_block_t getfoo(int i){
    return ^{
        printf("%d",i);
    };
}
//mrc
dispatch_block_t getfoo(int i){
    return [[^{
        printf("%d",i);
    }copy] autorelease];
}
Casting id <--> void*(Core Foundation and toll-free bridging)
  • Bridged

    NSString *a = (__bridge NSString *)my_cfref;//Noop cast
    CFStringRef *b = (__bridge NSString *)my_id//Noop cast
  • Move CF object to ARC
    NSString *c = CFBridgingRelease(my_cfref);//-1 on the CFRef
  • Move ARC object to CF
    CFStringRef d = CFBridingRetain(my_id);// returned CFRef + 1
目录
相关文章
|
1月前
|
JavaScript 前端开发 Java
编程笔记 html5&css&js 073 JavaScript Object数据类型
编程笔记 html5&css&js 073 JavaScript Object数据类型
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用2
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用2
30 0
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用1
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用1
23 0
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用1
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置1
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置1
26 0
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置3
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置3
34 0
|
安全 调度 开发者
内核笔记](七)——内核对象(Kernel object)机制
内核笔记](七)——内核对象(Kernel object)机制
468 0
内核笔记](七)——内核对象(Kernel object)机制
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用4深度拷贝
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用4深度拷贝
24 0
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用3
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用3
23 0
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的注意细节
前端学习笔记202306学习笔记第四十天-Es6-object.assign的注意细节
28 0
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置4
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置4
28 0