成員變量,本例中的是實例成員變量,是作用於整個類對象內的。從生命周期來看,它比部分變量要長一些,但它默許是公有的,其他對象是無法訪問到的。
比方你一個變量放在@interface中,你請求一個實體時,變量存活周期跟你實體一樣。
由於成員變量的作用域是整個類對象內,所以在ARC環境下OC外面的成員變量應該是 strong屬性的。
@interface ViewController : UIViewController
{
//成員變量
NSArray *array1;
}
//屬性變量
@property (nonatomic,strong) NSArray *array2;
@end
- (void)viewDidLoad
{
[super viewDidLoad];
array1 = [[NSArray alloc] initWithObjects:@"abcde", nil];
array2 = [[NSArray alloc] initWithObjects:@"123abc", nil];
{
// 部分變量
NSArray *array1 = [[NSArray alloc] initWithObjects:@"12345", nil];
}
NSLog(@"\narray1 : %@\n array2 : %@",array1,array2);
}
成員變量和屬性變量是完全一樣的,別被obj-c 2.0的靈敏寫法給誤導了。
但是屬性變量可以作為辦法名字,也就是可以有其他名字。
看到一篇文章:
IOS中的成員變量定義在@interface 和@implementation 中的區別是什麼? IOS中的成員變量定義在@interface 和@implementation 中的區別是什麼?
@interface 中是成員變量
@implementation 是全局變量
作用域和存活區間的問題
比方你一個變量放在@interface中,你請求一個實體時,變量存活周期跟你實體一樣
在@implementation 中,由於是全局,所以不斷存在
十分感激!
作用域,就是這個變量在存活區域,
比方說成員變量,就是放在@interface,作用域是類外面
全局變量,是整個順序
暫時變量普通是函數內
@implementation testClass{
UIView *_test;
}
這樣的變量應該不是全局的吧?
@implementation testClass{ UIView *_test; }
這個狀況比擬少個,不引薦,這個狀況是成員變量
但是默許是@private
其實都是成員變量,放在@implemetation裡的是公有的而已。都是成員變量,只是放在@implemetation中的變量無法被子類承繼
【iOS OC 成員變量是強援用還是弱援用】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!