我只是试图通过丢弃代码来理解变量的生命.我可以看到_inside和_outside在实例化新实例时保留,而大括号不是.
@interface ViewController (){
NSString *_innBraces;
}
@end
NSString *_outside;
@implementation ViewController{
NSString *_inmBraces;
}
NSString *_inside;
-(id)initWithInside:(NSString*)inside outside:(NSString*)outside nBraces:(NSString*)nBraces mBraces:(NSString*)mBraces{
self = [super init];
if (self) {
_inside = inside;
_outside = outside;
_innBraces = nBraces;
_inmBraces = mBraces;
return self;
}else{
return nil;
}
}
Run Code Online (Sandbox Code Playgroud)
_inside并且_outside都被声明为全局变量._innBraces和_inmBraces,他们在这两个类的实例变量.如果@interface它们在头文件中,那么您会看到两者之间的范围不同,因为它_inmBraces只会在您的实现文件_innBraces中可见,并且将在包含该.h文件的任何文件中可见.static关键字之前),那么它们将在存储和命名空间中都是本地文件到它们被声明的文件.在1和3的情况下,它们都是直接C声明,因此它们是否在范围内@implementation并且@interface没有任何区别.在Objective-C中,没有类变量.
对于类变量,一般过程是创建表单的文件静态变量:
static NSString *sMyClassVariable;
Run Code Online (Sandbox Code Playgroud)
在实现文件中.此变量因为是静态的,在您的实现文件之外的任何其他文件中都不可见.
| 归档时间: |
|
| 查看次数: |
1845 次 |
| 最近记录: |