1.nonatomic

2.assign

3.strong

4.weak

5.instancetype

6.@class @property

使部分类在编译时不使用ARC

-(可以让这们支持 retain release retainCount)

项目文件 - Build Phases - 找到.m文件双击 -加入Flags   --->>  -fno-objc-arc

让项目中的指定文件支持ARC 使用 -f-objc-arc    (-f的意思是Flags)

将非ARC的项目转换为 ARC

Edit - Convert - To Objcetive-C ARC

ARC-处理循环引用

使用 weak 弱指针   一个用strong指针 一个用weak指针

Block (和函数类似-保存一段代码)

函数是在编译前就要将代码写好

void test()
{
NSLog(@“—————");
}

block是在程序运行时保存一段代码  指针的标识符是 *   block的标识符是 ^ 也可以有型参 和 返回值

//定义了一个没有返回值 ,没有形参的 名为 myblock的 block 变量 block也是数据类型

void (^myblock)() = ^{
NSLog(@“———“);
NSLog(@“———“);
}; // 注意分号 // 利用block变量调用block内部的代码
my block(); // 调用方式与函数一样 带返回值和形参的 block 接收两个参数 返回两个参数的和 int (^sumblock)(int , int ) = ^(int a, int b){
return a+b;
}; int c = sumblock(,);
void test3()
{
int a = ;
__block int b = ; void (^block)(); block = ^{
// block内部可以访问外面的变量
//NSLog(@"a = %d", a); // 默认情况下,block内部不能修改外面的局部变量
// a = 20; // 给局部变量加上__block关键字,这个局部变量就可以在block内部修改
b = ;
}; block();
}

Block 使用 typedef

typedef int(^MyBlock)(int,int);

#import <Foundation/Foundation.h>
#import "Person.h" int main(int argc, const char * argv[])
{
MyBlock sumBlock = ^(int a,int b)
{
return a+b;
};
int s = sumBlock(,); NSLog(@"sum = %d",s);
return ;
}

最新文章

  1. .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比
  2. ES2005 js =&gt;
  3. SVD
  4. 2004FBI树
  5. SQLServer错误:过程 sp_addextendedproperty,第 xxx 行对象无效。&#39;dbo.xxx.xxx&#39; 不允许有扩展属性,或对象不存在。
  6. 不用写软件,纯JS 实现QQ空间自动点赞
  7. C#中如何设置窗体的默认按钮和取消按钮
  8. KMP算法的C++实现
  9. C++单元测试2
  10. C#.NET 各种连接字符串
  11. 依赖注入及AOP简述(九)——单例和无状态Scope .
  12. POJ 2209 The King#贪心
  13. C++STL笔记
  14. 【框架学习与探究之AOP--Castle DynamicProxy】
  15. Android学习路线指南
  16. beego框架的最简单登入演示
  17. Golang:List
  18. ES6 使用数据类型Set求交集、并集、差集
  19. 在django中如何通过已有的mysql表生成django的model
  20. C++ 中的不定参数与格式化字符串 # ## vsprintf

热门文章

  1. cf 85 E. Petya and Spiders
  2. j2ee学习笔记 Filter过滤器
  3. Motion——shake攻略
  4. 浅谈Android自定义锁屏页的发车姿势
  5. JavaScript与html5写的贪吃蛇完整代码
  6. android 中 ColorDrawable dw = new ColorDrawable(0x3ccccccc),关于颜色定义的总结
  7. python实时处理log文件脚本
  8. android Lib
  9. 什么时候用using (SPSite site = new SPSite(SPContext.Current.Web.Url))
  10. C#和SQL操作Xml