美文网首页
实例变量和属性-ObjectiveC

实例变量和属性-ObjectiveC

作者: CharlyZheng | 来源:发表于2016-12-05 00:00 被阅读32次
  1. @public 修饰的实例变量在类外部有->访问
  2. 定义一个属性会自动有如下规则
    1.自动生成访问方法
    2.自动生成实例变量
    3.可以更简单地调用访问方法
  3. @synthessize后面只能跟属性,不能跟实例变量,并为属性生成getter,setter方法
//属性的实现
@synthesize brand=(brand), price(=price), color; //属性的实现可以省略
//自动生成一个实例变量brand... 绑定到相应的属性brand...上
//2.setter和getter方法对实例变量brand进行操作

如果不写属性的实现

//如果不写属性的实现, 系统默认补上的形式
@synthesize brand = _brand, price = _price, color = _color;
//1.自动生成一个实例变量_brand
//2.setter和getter方法对实例变量_brand进行操作
  1. @dynamic关键字修饰告诉编译器属性自动生成的setter,getter方法无效,用户自定义访问方法。
  2. 当重写了属性的setter,getter方法后,系统默认补上的@synthesize age = _age就失效了
//当同时重写setter和getter后, @synthesize age = _age; 就失效了
//解决方案:自己补上 @synthesize age = _age
@synthesize age = _age;
//当属性生成的setter方法不满足需求时, 可以重写setter方法
- (void)setAge:(NSInteger)age {
    if (age > _age) {
        _age = age;
    }
}
//当属性生成的getter方法不满足需求时, 可以重写getter方法
- (NSInteger)age {
    return _age - 2;
}

相关文章

  • 实例变量和属性-ObjectiveC

    @public 修饰的实例变量在类外部有->访问 定义一个属性会自动有如下规则1.自动生成访问方法2.自动生成实例...

  • Python实例变量和类变量

    Python实例变量和类变量 类变量(类属性): 类变量属于类所有,所有实例共享一个变量 实例变量(实例属性) 实...

  • 2020-04-05 KVC

    课程引入:成员变量、实例变量、属性,区别是什么?---分类不能添加实例变量 成员变量 -- 实例变量 -- 属性 ...

  • 实例变量和属性

    实例变量和属性是两个不同的概念, 属性是iOS5之后新增的概念,属性的正常使用依附于实例变量1,实例变量1.1,定...

  • swift面向对象基础<二>

    存储属性和计算属性 今天讨论实例存储属性与实例变量,结构体常量与实例属性,定义计算属性,setter方法,属性观察...

  • 实例变量和属性变量的比较

    导言 实例变量和属性变量的使用 当在对象之外使用实例变量时,我们通过属性来访问。但当我们在对象之内使用实例变量时,...

  • OC之属性与实例变量

    目录 属性和实例变量的关系关于强引用、弱引用关于Copy 与 mutableCopy 属性和实例变量的关系 很多时...

  • 52个有效方法阅读笔记(二)

    1.属性和实例变量:属性(property)和实例变量其实就是对象保存数据的一种方法.a. 属性会自动生成获取方法...

  • iOS之成员变量、实例变量、属性

    作为iOS开发,会经常听到成员变量、实例变量和属性;那他们有什么区别吗? 实例变量 实例变量:class类进行实例...

  • 类中常量和静态变量的区别

    结论 静态变量和常量属于类属性。其他变量属于对象属性或者实例属性。 实例的属性才可以用 $obj->c 这种方式访...

网友评论

      本文标题:实例变量和属性-ObjectiveC

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