【问题标题】:How to declare enum to pass from one object to another如何声明枚举从一个对象传递到另一个对象
【发布时间】:2014-08-07 22:53:29
【问题描述】:

我有两个对象:NavButton,在每个 ViewController 和一个特定的 ViewController 上可见。 NavButton 应该知道哪种 ViewController 要求它并隐藏不需要的按钮。我考虑将其实现为将枚举从 ViewController 传递到 NavButton。
我对此有两个问题:
1. 我应该在哪里声明枚举? 2. 如何让 enum 在所有的 ViewController 中可见,所以每个 VC 都可以访问 NavButton 的属性为:self.navButton.kind = bigButton;

【问题讨论】:

  • 将枚举放入每个视图控制器都可以导入的.h文件中。
  • 我应该使用什么模板来创建那个 .h 文件?像往常一样上课?把那个文件放到prefix.pch可以吗?
  • 模板?你不需要模板。只是一个带有枚举的干净 .h 文件。
  • 加前缀可以吗?

标签: ios objective-c c enums


【解决方案1】:

只需使用 C 头文件模板 + nsenum 宏扩展,瞧!

//
//  Header.h
//  Test
//
//  Created by Yours Truly on 8/7/14.
//  Copyright (c) 2014 Adam Christopher Smith. All rights reserved.
//

#ifndef Test_Header_h
#define Test_Header_h

typedef NS_ENUM(NSUInteger, MyEnum) {
    MyEnumValueA,
    MyEnumValueB,
    MyEnumValueC,
};

#endif

如果我有很多这些并且它们被应用程序的不同部分使用,我倾向于将相当多的内容粘贴到一个文件中(可能是 Types.h)并将其放入我的 pch 中。完全可以接受的 IMO。

【讨论】:

  • 我如何在对象中定义这个枚举的属性?
  • @property (nonatomic) MyEnum myEnumValue;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
相关资源
最近更新 更多