程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-為什麼要把這些.h文件的內容寫到.m文件裡?

ios-為什麼要把這些.h文件的內容寫到.m文件裡?

編輯:編程綜合問答
為什麼要把這些.h文件的內容寫到.m文件裡?

現在在看別人的代碼 發現他們都把h文件的內容寫到m文件裡
比如:

 @interface MyTreeViewController ()
{
    NSArray *tree;
}
@end

@implementation MyTreeViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

為什麼要這麼做?為什麼不直接在頭文件裡寫
@property(strong,nonatomic)NSArray *tree;
??

最佳回答:


@interface MyTreeViewController () 是一個特殊分類,叫做 匿名分類。顧名思義,它沒有分類名

在匿名分類中可以聲明變量,這些變量都默認是@private私有變量,即使放在.h中仍然如此。

之所以放在.m中,是因為這是常見寫法,一些不希望外部訪問的@property、方法、變量,都可以使用分類的形式聲明在.m中,這樣就可以屏蔽外部訪問。

具體可以參考 變量聲明的不同形式,作用域等

peterchen149
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved