2014-11-21 79 views
0

我正在做一個練習,我必須創建一個類擴展以及自定義方法。 我決定使用typedef來允許在我的方法中使用參數。類擴展和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等價於一個實例變量嗎?

編輯21-nov-2014:我試過把括號中的typedef放在@"interface中,但它返回一個錯誤。

謝謝!

回答

1
  1. typedef的範圍是包含/導入包含typedef的頭文件的任何文件。

  2. @interface@implementation之外聲明的變量不是實例變量。這將是一種全球性的(取決於它在哪裏宣佈)。

  3. typedef不是任何類型的變量。這是一種數據類型。

僅供參考 - 您的任何問題都不涉及類擴展。