你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS OC 成員變量是強援用還是弱援用

iOS OC 成員變量是強援用還是弱援用

編輯:IOS開發綜合

成員變量,本例中的是實例成員變量,是作用於整個類對象內的。從生命周期來看,它比部分變量要長一些,但它默許是公有的,其他對象是無法訪問到的。

比方你一個變量放在@interface中,你請求一個實體時,變量存活周期跟你實體一樣。

由於成員變量的作用域是整個類對象內,所以在ARC環境下OC外面的成員變量應該是 strong屬性的。


鏈接:http://www.zhihu.com/question/23347971/answer/24332408
例子:
頭文件:
@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);
}


我的了解是:
部分變量是依據其生活周期定義的,在源文件中的array1,其生命周期是在以“{ }”為界線的代碼塊中,雖然它的稱號與成員變量相反,但不是同一個變量。成員變量是用於一個區域內的暫時變量。
成員變量,本例中的是實例成員變量,是作用於整個類對象內的。從生命周期來看,它比部分變量要長一些,但它默許是公有的,其他對象是無法訪問到的。因而,普通自定義辦法,作為一個接口讓其他對象訪問這個變量。因而,成員變量用於類外部,無需與外界接觸的變量。
依據成員變量的公有性,為了方便訪問,所以就有了屬性變量。屬性變量的益處就是允許讓其他對象訪問到該變量。當然,你可以設置只讀或許可寫等,設置辦法也可自定義。所以,屬性變量是用於與其他對象交互的變量。
目前我是這麼了解的,希望對你有協助。


成員變量和屬性變量是完全一樣的,別被obj-c 2.0的靈敏寫法給誤導了。
但是屬性變量可以作為辦法名字,也就是可以有其他名字。

http://www.cocoachina.com/bbs/read.php?tid-245245.html

看到一篇文章:

IOS中的成員變量定義在@interface 和@implementation 中的區別是什麼?

IOS中的成員變量定義在@interface 和@implementation 中的區別是什麼?

@interface 中是成員變量


@implementation 是全局變量


作用域和存活區間的問題


比方你一個變量放在@interface中,你請求一個實體時,變量存活周期跟你實體一樣


在@implementation 中,由於是全局,所以不斷存在

十分感激!
還想理解下,詳細的作用域的區別是什麼?

作用域,就是這個變量在存活區域,


比方說成員變量,就是放在@interface,作用域是類外面


全局變量,是整個順序


暫時變量普通是函數內


@implementation testClass{
UIView *_test;
}
這樣的變量應該不是全局的吧?

@implementation testClass{ UIView *_test; }


這個狀況比擬少個,不引薦,這個狀況是成員變量


但是默許是@private

其實都是成員變量,放在@implemetation裡的是公有的而已。

都是成員變量,只是放在@implemetation中的變量無法被子類承繼

【iOS OC 成員變量是強援用還是弱援用】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved