中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS如何解決頭文件的導入問題

發布時間:2021-08-04 11:12:43 來源:億速云 閱讀:138 作者:小新 欄目:移動開發

這篇文章主要為大家展示了“iOS如何解決頭文件的導入問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“iOS如何解決頭文件的導入問題”這篇文章吧。

.@class的出現可以適當減少編譯時間,提高效率。

現在假設有兩個類,一個是Teacher類,一個是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

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

注意:此時使用的是import導入的。這個方法可行但是不夠優雅,存在一個問題,在聲明文件中,我們不需要知道Students類的全部細節,只需要知道類名是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類的實現文件就需要知道Students類的全部借口細節,因此就需要在此時使用import “Students.h”。

將引入頭文件的時機盡量延后,只有在確有需要的時候才引入,這樣就可以減少類的使用者所需引入的頭文件的數量。假如在.h文件的時候就是用import導入,就會引入很多不需要使用的內容,這必然會增加編譯時間。

.@class的出現也兩個類互相引用的問題。

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”,同時在Teacher類中import “Students”類,這就造成了循環引用問題,程序在編譯的時候就會出現無休止的編譯。此時只需要將其中一個import改成@class即可,如果兩者的.h文件都不需要知道對方類的全部借口細節,最佳方案是全部使用@class。

以上是“iOS如何解決頭文件的導入問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

西吉县| 阳东县| 长子县| 清水县| 色达县| 福泉市| 双流县| 台中市| 东阿县| 来宾市| 集安市| 郓城县| 大安市| 吴旗县| 永寿县| 鄯善县| 神池县| 富裕县| 洮南市| 姜堰市| 乐亭县| 黔西县| 资中县| 嘉鱼县| 建阳市| 顺平县| 保山市| 阳曲县| 修文县| 海伦市| 金塔县| 庆云县| 临西县| 胶南市| 旬邑县| 普陀区| 古蔺县| 定州市| 乐清市| 汕尾市| 镇康县|