类扩展和typedef声明

时间:2014-11-21 03:50:59

标签: ios objective-c

我正在做一个练习,我必须创建一个类扩展以及一个自定义方法。 我决定使用typedef来允许在我的方法中使用参数。

这是有效的标题代码:

#import "XYZPerson.h"

typedef NS_ENUM(NSUInteger, XYZNameDisplay) {
    XYZNameDisplayDefault,
    XYZNameDisplayReversed
};

@interface XYZPerson (XYZNameDisplay)

- (NSString *)xyz_nameDisplayWithParameter:(XYZNameDisplay)p;

@end

这里有两个问题:

  1. 我的typedef的范围是什么?
  2. @interface@"implementation之外声明和实例变量的后果是什么?
  3. typedef是否等同于实例变量?
  4. 编辑21-nov-2014:我已经尝试将typedef放在@"interface中的括号之间,但它会返回错误。

    谢谢!

1 个答案:

答案 0 :(得分:1)

  1. typedef的范围是包含/导入包含typedef的头文件的任何文件。

  2. @interface@implementation之外声明的变量不是实例变量。它将是某种类型的全局(取决于它的声明位置)。

  3. typedef不是任何类型的变量。这是一种数据类型。

  4. 仅供参考 - 您的任何问题都与课程扩展无关。