我使用以下代码并收到以下错误:
编辑:如果您无法阅读上面的图片,请参阅this!
“ChangePasscode”当前被声明为一个类,是一个带有.h和.m文件以及.nib文件的视图控制器。
为什么会出现这些问题,我该怎么做才能解决这些问题?
谢谢!
答案 0 :(得分:1)
我要说你没有在当前文件中导入ChangePasscode.h
。
更新:为了回应下面的评论主题,如果要推送视图控制器,则需要实际创建导航结构。 iOS 5中的首选方式如下:
// AppDelegate.h
// …Other existing code
@property (nonatomic, retain) UINavigationController *navController;
@end
// AppDelegate.m
@synthesize navController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
navController = [[UINavigationController alloc] initWithRootViewController:viewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = navController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
答案 1 :(得分:0)
将[NSBundle mainBundle]
更改为nil
确保在M文件上有导入ChangePasscode.h
答案 2 :(得分:0)
我认为这是循环引用的经典案例。也许两个班级互相引用?由于此前向声明,在尝试引用具有前向声明的类的类名或属性时,可能会收到各种警告。
包括ChangePasscode
在内的所有内容。也请使用#import
而不是#include
。
更新:解决ld: duplicate symbol...
错误
您似乎在代码的不同位置编译了两次相同的类ChangePasscode
。在下列情况下可能会发生这种情况。
尝试在整个项目中查找您的课程,并确保项目中只有一个副本可用。
答案 3 :(得分:0)
使用
@class ChangePasscode;
而不是使用
#import ChangePasscode.h