2014-11-01 70 views
1

我已閱讀Objective-C中關於常量的一些文章,並且我得出結論,最好創建一個頭和一個實現。Objective-C中的常量類

問題是這樣的。我應該延長什麼課程? NSDocument? Xcode不允許我創建沒有子類的類。

+1

什麼是「常量級」?它與NSDocument有什麼關係? – 2014-11-01 22:36:21

回答

1

我會說簡單地擴展NSObject

我不覺得NSDocument適合這裏的目的,因爲它已經有其特定的目的,而不是與你在這裏做什麼有關。根據NSDocument的文檔:

NSDocument抽象類定義了OS X文檔的接口。文檔是一個對象,它可以在內部表示顯示在窗口中的數據,並且可以從文件或文件包中讀取數據並將數據寫入文件或文件包。

+0

好的。但爲什麼我需要擴展NSObject?只是好奇心 – placplacboom 2014-11-01 22:28:38

+2

NSObject是大多數Objective-C類層次結構的根類。它定義了很多目標c對象的常見行爲,如alloc,init,copy等。 – 2014-11-01 22:33:48

2

我想你是指一個地方聲明一些全局常量。如果是這樣的話,那麼你並沒有真正定義一個類。

更具體地說,如果你的常量只是原始數據和字符串。您可以在.h文件中定義它們並在.m文件中聲明它們。

Constants.h

extern NSString *const ConstString; 
extern const NSInteger ConstInt; 

Constants.m

NSString *const ConstString = @"asdasd"; 
const NSInteger ConstInt = 12; 

然而,如果你需要定義常量的自定義對象。那麼你可能需要一個自定義的單例類。你可以通過單例的方法來達到常量。 singelton類應該是NSObject的一個子類,因爲正如@Peter Pei Guo所說,這是所有Objective-C類的基類。