• OC学习那些事:self、自动释放、变量作用域


    1.变量的作用域 

    变量必须定义的{}中 

    @public:全局都可以方法 

    @protected:只能在类的内部和子类中访问(默认 

    @private:只能在类的内部方法 

     

    @interface Student : NSObject 
    { 
        @public 
        int _age; 
        int _no; 
     
        @private 
        int _name; 
     
        float height; 
    } 

    self->height直接访问成员变量 

    2.自动释放 

    使用autorelease方法,不用调用[stu release]方法手动释放 

     Student *stu = [[[Student alloc]initWithAge:10 andNo:1001]autorelease]; 

    使用系统的静态方法,都是自动释放 

    3.self 

    谁调用这个方法self就指向谁 

     

    +(void)test2 
    { 
        //等效的两个语句 
        [Student alloc]; 
        [self alloc] 
    } 

    4.私有方法 

    如果直接把方法写在.m文件中,没有在.h文件中声明,那么这就是私有方法 

    self在静态方法中,指向类;在动态方法中,指向当前对象;总结:谁调用了这个方法,就指向谁 

     

    @implement Student 
    … … 
    -(void)test 
    { 
        //self在动态方法中,代表当前对象 
        int age = self.age; 
    } 
     
    + (void)test2 
    { 
        //self在静态方法中,代表类 
        //[Student alloc]; 
        [self alloc]; 
    } 
    @end

    5.new方法 

     

    Student *stu = [Student new];等效 
    Student *stu = [[Student alloc]init]; 

  • 相关阅读:
    解决html2canvas插件object-fit样式不生效问题
    七牛云视频获取视频封面和缩略图
    实现一个简单拖拽
    elementui遮罩层下方内容禁止滑动
    echars适配代码
    修改vue项目页面的title
    用div实现textarea
    判断手机端和pc端
    angular的跨域
    angular的文件上传
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3260417.html
Copyright © 2020-2023  润新知