界面之间的通信知识点总结

界面通信的三种方法:

  • 属性传值:将第一页页面的值传给第二个页面。
  • 代理传值:实现界面传值要6步:
  1. 声明协议和协议的方法
  1. 声明代理
  2. 传值的内容
  3. 遵守协议
  4. 设置代理
  5. 调用协议的方法
  • Block传值:用于页面之间通信,同时可以进行传值。(使用场景类似协议传值,都是解决从后一个页面往前一个页面传值问题)

void(^block)(void) = ^(void)
{ }; 其中:
1.void(^block)(void)是类型
2.block是变量名
3.^(void){};是block实现。//在block内部不能直接修改局部变量的值,如果想修改必须声明成__block类型的变量或者static 。

Block内存管理:没有使用局部变量的block内存存储在全局区。block内部使用局部变量的时候内存存储在栈区。

当block变量定义为属性的时候,必须使用copy修饰,retain无效,即retain和assign会造成野指针问题。
当对block进行copy操作的时候,此时block的内存区域为堆区。

当不使用block时需要使用Block_Release()进行销毁。

在非arc下使用_block修饰变量来防止循环引用。在arc下使用_weak修饰变量来防止循环引用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 重点掌握 3 类对象和方法 对象就是一个物体 类的独特存在就是一个实例,对实例进行操作叫做方法。方法可以应用于类或...
    Coder大雄阅读 1,282评论 0 2
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,211评论 30 472
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,370评论 11 349
  • 把网上的一些结合自己面试时遇到的面试题总结了一下,以后有新的还会再加进来。 1. OC 的理解与特性 OC 作为一...
    AlaricMurray阅读 2,610评论 0 20