如果變量的生命中帶有關鍵字: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