可変

2012-03-13 2 views
4

私は私のメソッドのシグネチャの一部として列挙型を持つようにしようとしていると私は私の.hファイルで、この恐ろしいエラーが表示されます。私は私の時間ファイルにこれを持って可変

Declaration of 'enum CacheFile' will not be visible outside this function 

@interface DAO : NSObject 

    typedef enum { 
     DEFAULT_CACHE_FILE, 
     WEB_CACHE_FILE 
    } CacheFile; 

    -(NSMutableArray *) parseFile :(enum CacheFile) file; 



@end 

私の.mファイル:

-(NSMutableArray *) parseFile:(CacheFile) file{ 
..... 
.... 
} 

そして私は、私メートルファイルでこの警告を受ける:

Conflicting Parameter types in implementation of 'parseFile:':'enum CacheFile' vs 'CacheFile' 

私は間違っていますか?

答えて

12

適切なObjective-Cのそれを更新し、@interfaceの外に列挙型の宣言を移動しますenum idiom(別のtypedef)を呼び出し、メソッド宣言を修正します。

enum { 
    DEFAULT_CACHE_FILE, 
    WEB_CACHE_FILE 
}; 

typedef unsigned long CacheFile; 

@interface DAO : NSObject  
    -(NSMutableArray *) parseFile:(CacheFile) file; 
@end 
4

あなただけの.hファイルでそのようにそれを定義します(再度ない列挙型を持つ)

-(NSMutableArray *) parseFile :(CacheFile) file;