知识点

UIButton 父类是谁?
UIControl

assign weak 修饰的区别?为什么用weak修饰对象,而不用assign
assign修饰基本数据,weak修饰对象
防止野指针出现

不使用KVO监听方法,如何手动触发对象的属性的变化

  • (void)willChangeValueForKey:(NSString *)key
    设置模型值
  • (void)didChangeValueForKey:(NSString *)key

__block和__weak的区别
1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。
2.__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
3.__block对象可以在block中被重新赋值,__weak不可以。
4.__block对象在ARC下可能会导致循环引用,非ARC下会避免循环引用,__weak只在ARC下使用,可以避免循环引用。

为什么block中不能修改普通变量的值?
int val = __cself->val;
因为int val变量定义在栈上,,在block被调用时实际上已经被销毁,但是我们还可以正常访问这个变量,而这个变量的值实际上是__cself->val,__cself->val是截获的变量值的副本,要想修改在block之外定义的变量是不可能的。

__block的作用就是让变量的值在block中可以修改么?
使用__block变量修饰后,
__Block_byref_val_0 *val;
val是一个指针变量,因此可以访问修改block外的val变量。但是出现一个问题就是在arc模式下,__block修饰对象会出现循环引用的问题,因为对象会被强引用一次。非arc模式下则不会出现循环引用的问题。

谈谈你对runtime的理解,有哪些应用?

属性weak 实现原理
Runtime维护了一个weak表,用于存储指向某个对象的所有weak指针。weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址(这个地址的值是所指对象的地址)数组。

网络、加密、锁,你可以自由发挥

招聘一个靠谱的iOS上
http://www.cocoachina.com/articles/12872
招聘一个靠谱的iOS下
https://www.jianshu.com/p/90dccd24f505

大小长度粗细不均的香,烧完都是1个小时,请问怎样才能确定是15分钟?
1.拿两根香,第一根两头同时点上,另一根指点一头
2.当第一根烧完的时候,正好过了半小时,从此刻开始计时,把另一个根香的另一头点上,烧完就是15分钟

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

推荐阅读更多精彩内容

  • 1、ios内存管理机制 iOS内存管理机制的原理是引用计数,当这块内存被创建后,它的引用计数0->1,表示有一个对...
    Daniel_you阅读 581评论 0 6
  • 可否使用 == 来判断两个NSString类型的字符串是否相同?为什么? 不能。==判断的是两个变量的值的内存地址...
    渐z阅读 620评论 0 0
  • 1. Cocoa 和 Cocoa Touch 的区别。 相同点:都包含运行时的核心框架; Cocoa:包含 Fou...
    望穿秋水小作坊阅读 585评论 0 1
  • 1. clipsToBounds:是指视图上的子视图,如果超出父视图的部分就截取掉,masksToBounds:是...
    Alfred的记录本阅读 451评论 0 0
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,619评论 0 11