随笔 - 262  文章 - 0  评论 - 5  阅读 - 20万

【iOS 知识汇】oc static

oc static 跟java有所区别。

1.全局只有在本类可以访问。出文件就不可访问了,区别与java.

2.类方法可以访问static 变量。oc + 方法类似java静态方法。

3.一个静态变量所以实例对象共用。分配在堆区内存。相同java。

4.方法中声明static 变量。只有在方法中访问。同样一个静态变量所以实例对象共用。(严重区别与java,java在方法中不可以声明静态 static)

5.(重要 )静态变量只初始化一次。如果方法中声明的也是如此。

6.static 变量不初始化,均有默认值。比如int a ,默认值为0 ;

#import <Foundation/Foundation.h>
static int a ;//只能在@interface和@end外面定义。
@interface StaticTest : NSObject
//static int b ;
-(void)st ;
+(void)printA;
@end
static int c = 1000 ;
复制代码
#import "StaticTest.h"
static int d ;
@implementation StaticTest
-(instancetype)init{
    self = [super init];
    a++ ;
    return self;
}

-(void)st{
    static int e ;
    NSLog(@"e:%d",++e);
}

+(void)printA{
    NSLog(@"a:%d",a);
}
@end
复制代码
复制代码
#import <Foundation/Foundation.h>
#import "StaticTest.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        
        
       
        StaticTest* test =[StaticTest new];
        NSLog(@"a:%@",[StaticTest class]);
        
        [test st];
        [test st];
        [test st];
        [test st];
        StaticTest* test1 =[StaticTest new];
       
        [test1 st];
        [StaticTest printA];
    }
    return 0;
}
复制代码
复制代码
2020-06-13 15:06:33.670 test[1955:43303] Hello, World!
2020-06-13 15:06:33.672 test[1955:43303] a:StaticTest
2020-06-13 15:06:33.673 test[1955:43303] e:1
2020-06-13 15:06:33.673 test[1955:43303] e:2
2020-06-13 15:06:33.673 test[1955:43303] e:3
2020-06-13 15:06:33.673 test[1955:43303] e:4
2020-06-13 15:06:33.673 test[1955:43303] e:5
2020-06-13 15:06:33.673 test[1955:43303] a:2
Program ended with exit code: 0
复制代码

 

posted on   wp7ers  阅读(232)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示