常用关键词区别

block和weak修饰符的区别?

__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,也可以修饰基本数据类型

__weak只能在ARC模式下使用,只能修饰对象(NSString),不能修饰基本数据类型

block修饰的对象可以在block中被重新赋值,weak修饰的对象不可以

Frame和Bounds简介

  • frame:以父控件左上角为原点

  • bounds:以自己内容左上角为原点

  • frame和bounds都是描述一块区域

    • frame描述的这块区域:可视范围

    • bounds描述的区域:可视范围在内容范围显示的区域。

区域和点一样,不同参照物,描述的区域不同

frame:参照父控件一直不变

bounds:参照内容,位置会变动

其实bounds:x,y可以为其他值

bounds

  • bounds,x,y++,为什么内容往上走,x,y++表示要看下面的内容,内容就会往上移走

  • bounds:以自己内容的左上角为原点,描述可视范围相对内容范围的位置。

weak和assgin

  • ARC下才有weak

  • weak

    • __weakx修饰,弱指针,不会让引用计数器+1,对象被销毁指针被清空
  • assgin

    • __unsafe_unretained修饰,不会让引用计数器+1,用于基本数据类型 对象被销毁指针不会被清空

你可能感兴趣的:(常用关键词区别)