我在A.h文件中有一个typedef,我在B.h中导入了那个使用相同typedef的A.h文件。
最长的时间一切正常,但现在它打破抱怨它不识别typedef并在xcode中给出“Expect type”错误,即使xcode突出显示第二个文件中的typedef,这意味着它知道它们在其他地方定义。
如果我手动重新定义该typedef,那么错误就会消失。但我得到一个警告,我正在重新定义一个typedef并且它是一个C11功能。
我尝试删除派生数据,但错误仍然存在。看起来xcode在插入导入文件之前试图查找typedef。任何线索?我正在使用xcode 4.6
//WebService.h
#import <Foundation/Foundation.h>
#import "AppDelegate.h"
@interface WebService : NSObject
typedef void(^loginUserWithUserNameandPaswordCompletion)(NSDictionary *, NSError*);
+(void)createUserWithName:(NSString*)name
andEmail:(NSString*)email
andPassword:(NSString*)password
onCompletion:(loginUserWithUserNameandPaswordCompletion) complete;
@end
//DataCenter.h
#import <Foundation/Foundation.h>
#import "WebService.h"
#import "AppDelegate.h"
typedef void(^loginUserWithUserNameandPaswordCompletion)(NSDictionary *, NSError*);
@interface DataCenter : NSObject
+(void) logInUserWithEmail:(NSString*) email
andPassword:(NSString*)password
onCompletion:(loginUserWithUserNameandPaswordCompletion)complete;
@end
答案 0 :(得分:2)
尝试在@interface
的{{1}}之前输入typedef。
答案 1 :(得分:0)
使用了gberginc
提到的@class