一些关键字的使用__weak,__block

1、category 和 extension 的区别
分类有名字,类扩展没有分类名字,是一种特殊的分类分类只能扩展方法(属性仅仅是声明,并没真正实现),类扩展可以扩展属性、成员变量和方法

2、define 和 const 常量有什么区别?
define 在预处理阶段进行替换,const 常量在编译阶段使用宏不做类型检查,仅仅进行替换,const 常量有数据类型,会执行类型检查define 不能调试,const 常量可以调试
define 定义的常量在替换后运行过程中会不断地占用内存,而 const 定义的常量存储在数据段只有一份 copy,效率更高define 可以定义一些简单的函数,const 不可以

3、block 和 weak 修饰符的区别?
__block 不管是 ARC 还是 MRC 模式下都可以使用,可以修饰对象,也可以修饰基本数据类型__weak 只能在 ARC 模式下使用,只能修饰对象(NSString),不能修饰基本数据类型
block 修饰的对象可以在 block 中被重新赋值,weak 修饰的对象不可以

4、static 关键字的作用
函数(方法)体内 static 变量的作用范围为该函数体,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;
在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明 它的模块内;在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的 static 成员变量

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 重点掌握 3 类对象和方法 对象就是一个物体 类的独特存在就是一个实例,对实例进行操作叫做方法。方法可以应用于类或...
    Coder大雄阅读 1,428评论 0赞 2
  • 1.1 局部变量 局部自动变量,在Block中可被读取。Block定义时copy变量的值,在Block中作为常量使...
    陈雨尘阅读 3,100评论 4赞 31
  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 1,784评论 0赞 1
  • 注:这是第三遍读《C语言深度解剖》,想想好像自从大学开始就没读完过几本书,其中谭浩强的那本《C语言程序设计(第四版...
    HavenXie阅读 2,027评论 1赞 6
  • 数组方法里push、pop、shift、unshift、join、splice分别是什么作用?用 splice函数...
    白柏更好阅读 226评论 0赞 0

友情链接更多精彩内容