[英]typedef enum: which classes have access to it
注意:我更改了名稱,我實際上沒有類型字母。
在我的根視圖控制器.h中,我這樣做
typedef enum {
a,
b,
c,
d,
e }letters;
我還有其他幾個類,其中大部分需要使用這種“字母”類型。 在我的根視圖控制器中,我使用“#import”MyClass.h“來導入類(因為我在rootViewController中創建了它的實例)。但是,這不允許MyClass使用類型”letters“。
我嘗試在MyClass.h中添加“#import rootViewController.h”,但是xcode開始給我錯誤(有時只是開啟和關閉)。 做這個的最好方式是什么? 我應該只將rootViewController導入到需要此“字母”類型的所有類中嗎? 是否可以讓rootViewController導入MyClass和MyClass導入rootViewController?
如果您只需要在連接一個類時使用枚舉,請繼續將其包含在該類的.h文件中。 如果你需要在許多不同的地方使用枚舉,你可能會更好地通過創建.h文件來聲明枚舉,並在任何需要的地方包含它。
您的錯誤可能來自缺少前方聲明。 如果RootViewController具有引用MyClass的ivars,屬性或方法簽名,則需要@class MyClass;
或者在編譯器獲取那些ivars,屬性或方法簽名之前,MyClass的@interface塊可見。 如果RootViewController.h和MyClass.h都包含另一個,那么如果首先導入RootViewController.h但是如果首先導入MyClass.h則失敗。
typedef enum
有點像#define
,有一些錯誤檢查(限於整數類型)。
即它可能導致問題的唯一方法是,如果你搞砸了語法或聲明具有相同名稱的東西(重新聲明錯誤)。
除此之外,不太可能是你的問題。
沒有看到錯誤消息就不可能多說。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.