如果变量的生命中带有关键字:extern,仅仅是暗示这个变量可能是在别的源文件中定义过的,没有其他作用。
例如:
在一个项目中有一个继承与NSObject的类>>MyExtern
#import <Foundation/Foundation.h>
@interface MyExtern : NSObject
@end
#import "MyExtern.h"
@implementation MyExtern
NSString *myExternString = @"abc";
@end
在ViewController调用,不用引入上类的头文件,直接在ViewController.h使用:如下:
#import "ViewController.h"
@interface ViewController ()
extern NSString *myExternString;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"extern_%@",myExternString);
myExternString = @"qqq";
NSLog(@"extern22_%@",myExternString);
}
@end
控制台打印结果如下
2017-06-19 15:02:11.763 PRFTest[65774:2761512] [IFLYTEK] login in
2017-06-19 15:02:11.774 PRFTest[65774:2761512] extern_abc
2017-06-19 15:02:11.775 PRFTest[65774:2761512] extern22_qqq
网友评论