最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談iOS關(guān)于頭文件的導(dǎo)入問題

 更新時(shí)間:2017年04月18日 08:20:46   作者:馬玉文  
本篇文章主要介紹了淺談iOS關(guān)于頭文件的導(dǎo)入問題,具有一定的參考價(jià)值,有興趣的可以了解一下。

關(guān)于import和@class的使用問題

.@class的出現(xiàn)可以適當(dāng)減少編譯時(shí)間,提高效率。

現(xiàn)在假設(shè)有兩個(gè)類,一個(gè)是Teacher類,一個(gè)是Students類。

Teacher類

#import <Foundation/Foundation.h>
#import "Students.h"

@interface Teacher : NSObject

@property (copy,nonatomic)NSString *firstName;
@property (copy,nonatomic)NSString *lastName;
@property (strong,nonatomic)Students *student;

@end

在類中聲明三個(gè)屬性,其中有一個(gè)屬性為Students類屬性。這時(shí)候既然使用到Students類,就需要導(dǎo)入該類的頭文件。如如上代碼。

注意:此時(shí)使用的是import導(dǎo)入的。這個(gè)方法可行但是不夠優(yōu)雅,存在一個(gè)問題,在聲明文件中,我們不需要知道Students類的全部細(xì)節(jié),只需要知道類名是Students就可以。如下使用@class解決問題,這叫“向前聲明”該類。

Teacher.h

#import <Foundation/Foundation.h>

@class Students;

@interface Teacher : NSObject

@property (copy,nonatomic)NSString *firstName;
@property (copy,nonatomic)NSString *lastName;
@property (strong,nonatomic)Students *student;

@end

Teacher.m

#import "Teacher.h"
#import "Students.h"

@implementation Teacher

@end

Teacher類的實(shí)現(xiàn)文件就需要知道Students類的全部借口細(xì)節(jié),因此就需要在此時(shí)使用import “Students.h”。

將引入頭文件的時(shí)機(jī)盡量延后,只有在確有需要的時(shí)候才引入,這樣就可以減少類的使用者所需引入的頭文件的數(shù)量。假如在.h文件的時(shí)候就是用import導(dǎo)入,就會(huì)引入很多不需要使用的內(nèi)容,這必然會(huì)增加編譯時(shí)間。

.@class的出現(xiàn)也兩個(gè)類互相引用的問題。

Teacher.h

#import <Foundation/Foundation.h>

#import "Students.h"

@interface Teacher : NSObject

@property (copy,nonatomic)NSString *firstName;
@property (copy,nonatomic)NSString *lastName;
@property (strong,nonatomic)Students *student;

@end

Students.h

#import <Foundation/Foundation.h>

#import "Teacher.h"

@interface Students : NSObject

@property (strong,nonatomic)Teacher *teacher;

@end

在Students類中import “Teacher.h”,同時(shí)在Teacher類中import “Students”類,這就造成了循環(huán)引用問題,程序在編譯的時(shí)候就會(huì)出現(xiàn)無休止的編譯。此時(shí)只需要將其中一個(gè)import改成@class即可,如果兩者的.h文件都不需要知道對(duì)方類的全部借口細(xì)節(jié),最佳方案是全部使用@class。

小結(jié)

除非確實(shí)有必要,就不要引入頭文件。一般來說,在.h文件中應(yīng)該使用向前聲明來提及別的類,然后在.m文件引入那些類的頭文件。這樣做可以盡量降低類的耦合。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

龙游县| 化隆| 贵定县| 稷山县| 明溪县| 石狮市| 玉屏| 辽宁省| 徐州市| 敦化市| 库尔勒市| 南昌市| 黄山市| 宁城县| 台东市| 香格里拉县| 莒南县| 五家渠市| 西昌市| 大同县| 金沙县| 焉耆| 会泽县| 文昌市| 嘉祥县| 石狮市| 友谊县| 洛川县| 柳河县| 龙口市| 白沙| 北辰区| 巫山县| 嵊州市| 探索| 贵南县| 册亨县| 图片| 谷城县| 涿鹿县| 来宾市|