• oc-24-点语法


    /**
      点语法的本质是方法的调用,而不是访问成员变量,当使用点语法时,
      编译器会自动展开成相应的方法。切记点语法的本质是转换成相应的set和get方法,
      如果没有set和get方法,则不能使用点语法。
     
     点语法本质 就是set或者get方法.
     1.遇见 s.age = 10;形式,会自动展开为:[s setAge:10];
     2.遇见 int a = s.age;形式,会自动展开为:int a = [s age];
     
     点语法注意事项:
     1.用在set方法中:
     - (void)setAge:(int)age
     {
       _age = age;
       self->_age = age;
       self.age = age;// 死循环会展开为:[self setAge:age];
     }
     2.在get方法中:
     - (int)age
     {
       return _age;
       return self->_age;
       return self.age;// 死循环会展开为:[self age];
     }
     
     注意点:什么时候会生成set方法什么时候会生成get方法?
     如果有赋值运算符,生成set方法,否则,生成get方法.
     
     3)OC点语法的本质是方法调用,不是直接访问成员变量。至于这个点语法代表的是get方法还是 set方法,那就取决于你是取值还是设值(也可以理解为点语法是在“=”的左侧还是右侧。左侧:如stu.age=....这就是调用set方法,右侧 ... = stu.age这就是调用get方法),取值就是get方法,设值就是set方法。
     
     */
    #import <Foundation/Foundation.h>
    #import "Student.h"
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
           
            Student *s = [Student new];
            
    //        [s setAge11:10];
            s.age11 = 10;//跟- (void)setAge11:(int)age的setAge11匹配
    
    //        int aAge = [s age];
            int aAge = s.age;
            
            NSLog(@"%d",aAge);
            
        }
        return 0;
    }
  • 相关阅读:
    docker-compose.yml(2)
    docker-compose.yml(3)
    docker-compose.yml(4)
    生产者&消费者.py
    工作机制.py
    2.5 webpack 进阶
    2.3 Gulp
    2.4 webpack + gulp 构建完整前端工作流
    2.2 webpack
    2.1 前端工程化概述
  • 原文地址:https://www.cnblogs.com/yaowen/p/5311128.html
Copyright © 2020-2023  润新知