簡體   English   中英

typedef enum:哪些類可以訪問它

[英]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.

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