zoukankan      html  css  js  c++  java
  • Objective C 总结(四):封装数据

    1. 对象的数据是类内定义的字段,属性是对字段的封装,编译器会自动为属性生成相应的字段及读取方法。
      传统的定义方法
      @interface XYZPerson : NSObject
      {
          @private
          NSString *_firstName;
      NSString *_name;
      float: _height; } - (NSString *) firstName; - (void) setFirstName : (NSString *) firstName; - (float) height; - (void) setHeight: (float) height; @end

      用属性的定义方法

      @interface XYZPerson : NSObject
      @property (copy) NSString *firstName;
      @property float height;
      @end

      实现

      @implementation XYZPerson
      @synthesize firstName;
      @synthesize height;
      @end

      属性默认是readwrite修饰的,我们可以定义一个只读的属性,用readonly修饰

      @property (readonly) NSString *firstName;

      自定义属性的访问器

      @property (readonly, getter=isFinished) BOOL finished;

      属性的访问语法

      somePerson.firstName = @"bob";
      somePerson.height = 199.0;
      NSLog("Name is %@", somePerson.firstName);
    2. 能定义字段与属性的自由结合
      @implementation XYZPerson
      @synthesize propertyName = instanceVariableName;
      ...
      @end
      @implementation XYZPerson
      @synthesize firstName = _name;
      @end

      这样对firstName的访问实际上是访问了_name字段。

    3. 属性默认是修饰atomic,在非多核心的处理器,可以用nonatomic修饰,可以提升点性能
      @property (nonatomic, readonly) NSString *firstName;
  • 相关阅读:
    find命令之xargs
    find命令之exec
    find 命令概览
    mv命令
    locate 命令
    whereis 命令
    linux which 查看可执行文件的位置
    Linux应用总结:自动删除n天前日志
    Visual Studio
    Visual Studio- “无法启动此程序,因为计算机中丢失 xxx.dll尝试重新安装该程序以解决此问题"
  • 原文地址:https://www.cnblogs.com/iprogrammer/p/3245966.html
Copyright © 2011-2022 走看看