zoukankan      html  css  js  c++  java
  • oc-23-static

    #import <Foundation/Foundation.h>
    #import "Person.h"
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            Person *p = [Person new];
           // static p; // 不能修饰对象.
        }
        return 0;
    }
    
    
    //Person.h
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    {
        //    static int _age; static 不能修饰成员变量
    }
    //static - (void)test; // 不能修饰方法
    @end

    跟C语言中的用法一样。

    11.OC中的Static关键字使用
    
    static 修饰局部变量:延长布局变量的生命周期 .
    static 修饰全局变量:当前变量只能在当前文件中使用.
    static 修饰函数:函数只能在当前文件中使用 .
    1.关于OC中的static关键字使用
    
    static关键字 (在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值)变量为静态变量,位于程序的全局数据区,若作全局变量,可将声明放在实现文件的开始部分.
    2.在OC种static关键字使用误区
    
    使用static修饰实例变量是不被允许的
    使用static修饰方法也是不被允许的
    3.使用static@interface和@end之间是不被允许的(写局部变量本来就不被允许)
    
    3.static的使用场合:
    
    1)可以定义全局变量,但是只能在Dog.m中使用
    //  狗类的声明
    static int m=10; //此句话也可以放到.m中
    @interface Dog:NSObject
    {
      int _speed;
    }
    -(void)run;
    @end
    
    // Dog.m文件内容
    #import "Dog.h"
    //#pragma mark 狗类的实现
    @implementation Dog
    -(void)run{
    NSLog(@"m = %d”,m);
     }
    @end
    
    
    2)可以定义局部变量和C语言一样,延长变量生命周期
    dog.m
    #import "Dog.h"
    #pragma mark 狗类的实现
    @implementation Dog
    
    -(void)run{
    //定义局部静态变量 m
    static int m=10;
    NSLog(@"m = %d",m);
    m++;
    }
    
    @end
    main.m
    int mian(){
     Dog *d = [Dog new];
    
     [d run];
     [d run];
     [d run];
    
     return 0;
    }
    //注意 Static型全局变量的可见性,局限于当前.m文件,其他的文件中的类,无法访问到该变量。
  • 相关阅读:
    Cisco ASR1002-X告警处理
    WLC5520无法通过无线客户端进行网管故障解决
    一键分享mob,方法二
    Java中堆内存和栈内存详解
    linux.linuxidc.com
    android中shape的使用(android:angle小解)
    Activity的Launch mode详解 :standard(默认), singleTop, singleTask和 singleInstance
    Android studio个人常用快捷键
    Android 公告新闻消息资讯之垂直滚动效果
    数据库设计相关
  • 原文地址:https://www.cnblogs.com/yaowen/p/5310928.html
Copyright © 2011-2022 走看看