zoukankan      html  css  js  c++  java
  • iOS学习——Object-C模拟类变量

    iOS学习——Object-C模拟类变量

    Object-C中并没有JAVA中的类变量,博主在刚开始时,又是给@property加static修饰,又是给字段加static修饰,都会报错。查阅文档得到以下信息:

    1. static关键字不能用于修饰成员变量
    2. static关键字只能用于修饰局部变量全局变量函数
    3. static修饰局部变量,代表将该局部变量存放到静态存储区
    4. static修饰全局变量,可以限制该全局变量只能被当前源文件访问
    5. static修饰函数,可以限制该函数只能在当前源文件调用

    那么现在可以明白OC中的static修饰符跟不少语言中的static不是一回事。

    但事实上,类变量确实是面向对象中很有必要的。现在要用另一种方式模拟类变量。

    解决方案是:建立static的全局变量,并在实现public的get、set方法,供外部调用

    下面给出代码示例,相信你能很快明白其用法。

    //
    //  Person.h
    //  test_command
    //
    //  Created by 周凌宇 on 15/8/11.
    //  Copyright (c) 2015年 周凌宇. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    
    +(void) setPlanetName: (NSString *)planetName;
    +(NSString *) planetName;
    
    @end
    //
    //  Person.m
    //  test_command
    //
    //  Created by 周凌宇 on 15/8/11.
    //  Copyright (c) 2015年 周凌宇. All rights reserved.
    //
    
    #import "Person.h"
    
    
    static NSString *_planetName;
    
    @implementation Person
    
    +(void) setPlanetName: (NSString *)planetName {
        _planetName = planetName;
    }
    
    +(NSString *) planetName {
        return _planetName;
    }
    
    @end
    //
    //  main.m
    //  test_command
    //
    //  Created by 周凌宇 on 15/8/11.
    //  Copyright (c) 2015年 周凌宇. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Person.h"
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            [Person setPlanetName:@"地球"];
            NSLog(@"%@",[Person planetName]);
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    人脸识别最新开发经验demo分享
    虹软人脸识别SDK的接入方法
    基于虹软sdk,java实现人脸识别(demo)
    【C#】 基于ArcFace 2.0—视频人脸识别Demo
    基于免费人脸识别的闸机开发及源码分享
    运算符及其应用
    vim 命令
    children lastchild parentNode parentElement
    同步对象锁有效作用域
    在eclipse导入Java 的jar包的方法 JDBC【图文说明】
  • 原文地址:https://www.cnblogs.com/coderfish/p/4875462.html
Copyright © 2011-2022 走看看