簡體   English   中英

Xcode添加objective-c文件“文件類型”

[英]Xcode adding objective-c file “file type”

我正在嘗試使用Xcode 6.1.1向我的Xcode項目添加一個新文件,Xcode現在有一個“文件類型”選項,您可以在其中選擇“空文件,類別,協議,擴展”

有人可以解釋這些與默認選擇之間的差異嗎? 我的文件是NSObject的子類。

謝謝

類別

類別用於幫助模塊化和組織類定義。 它們允許您采用(復雜的)類定義並將其分布在幾個有組織的類中。 它與子類化不同。 雖然類別允許您覆蓋方法,但Objective-C無法確定應該使用哪個方法定義,因此您永遠不應該使用類別來覆蓋方法。 相反,創建一個按照慣例覆蓋方法的子類。

類別可以包含受保護的方法,“通過簡單地導入類別,允許任意文件'選擇加入'到API的一部分。” (查看下面鏈接的文章。)

延期

擴展提供與類別類似的功能,但必須在主實現文件中實現擴展的API。

擴展也可用於創建正式的私有API。 通常,如果要創建私有方法,則應在實現塊中編寫它們,但會將它們從接口塊中排除。 但是,如果您希望保持私有的一組廣泛的方法,這將變得繁瑣且難以閱讀/維護。 使用擴展,您可以在.m文件的接口和實現塊中定義私有方法。 只要您不將它包含在相應的.h文件中,這些方法將被視為私有方法。

擴展也可用於在類中使用“自我”語法在類讀寫之外進行只讀的先前聲明的屬性。

協議

協議允許跨各種(有時不相關的)類和類層次結構的抽象水平關系。 協議由一個API組成,可以由各種類使用,無論它們是否相關。 這允許您通過可能廣泛的類修改/添加一些類功能,而無需子類化它們並更改它們自己的類層次結構。

為了使用協議,類只需要:1。在類/超類名稱聲明之后將協議的名稱包含在有角度的括號<>中2.實現協議的方法

協議也可用於類型檢查。

空的文件

空文件只是一個空文件。 你給它一個名字,但它不包含任何類信息(沒有生成的方法,塊,注釋等)。

資料來源: RyPress關於類別和擴展的 文章關於協議的RyPress文章 這兩篇文章都有每個工具的有用示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM