美文网首页
iOS中@关键字

iOS中@关键字

作者: 土豆赶着鸡 | 来源:发表于2018-11-12 15:12 被阅读0次

    @property

    作用:快速创建实例变量存取;允许点语法使用

    在编译阶段编译器自动生成ivar成员变量+set方法+get方法
    属性名前加前缀_,set/get方法使用驼峰式命名
    往类添加属性,系统会在objc_ivar_list中添加一个成员变量的描述,在objc_method_list中添加set/get方法的描述

    举例:字符串var,分别对应_var、setVar、getVar

    注意:当类有同名成员变量,就不在重复添加

    @synthesize

    作用:为属性添加一个实例变量名,或者说别名。同时会为该属性生成 setter/getter 方法
    当我们同时重写了setter and getter方式时,需要在.m的文件中使用@synthesize
    当在 protocol 中声明并实现属性时,需要使用@synthesize生成setter和getter
    如果 @synthesize和 @dynamic都没写,那么默认的就是@syntheszie var = _var
    @syntheszie var = _var;等价于 @syntheszie var;

    @dynamic

    属性的 setter 与 getter 方法由用户自己实现,不自动生成。当然对于 readonly 的属性只需提供 getter 即可

    @synchornized(obj)

    obj作为锁对象,底层通过哈希表实现,锁异常会自动解锁,牺牲性能换来代码的简洁

    注意:一个代码块只需一把锁,多把锁是无效的

    相关文章

      网友评论

          本文标题:iOS中@关键字

          本文链接:https://www.haomeiwen.com/subject/fgvqfqtx.html