AppDelegate可能无法响应'委托'

时间:2011-10-02 17:13:16

标签: objective-c ios xcode4 delegates

我收到错误'MillersAppAppDelegate'可能无法响应'委托'。我还在学习所有这些,但完全不理解,因为我已经读过,这通常发生在头文件中未声明方法时。我正在使用XCode 4.这是我正在看的代码的一部分:

#import <UIKit/UIKit.h>

@interface MainViewController : UIViewController {    
}
-(IBAction) contactButtonClick:(id)sender;

@end

这是.m文件:

#import "MainViewController.h"
#import "MillersAppAppDelegate.h"
#import "ContactViewController.h"

@implementation MainViewController

-(IBAction) contactButtonClick:(id)sender{
    MillersAppAppDelegate *delegate = [(MillersAppAppDelegate *)[UIApplication     sharedApplication] delegate]; <---this line gets the warning "'MillersAppAppDelegate' may not respond to 'delegate'"
    ContactViewController *contactView = [[ContactViewController     alloc]initWithNibName:@"ContactViewController" bundle:nil];
    [delegate switchViews:self.view toView:contactView.view];
}

程序运行正常,但我还有其他一些操作会产生相同的警告(所有操作都处理视图切换)。感谢您的帮助,我确信这是一个简单的答案,但我还是初学者。这也可能是XCode3和XCode 4之间的问题?

1 个答案:

答案 0 :(得分:5)

尝试

(MillersAppAppDelegate *)[[UIApplication sharedApplication] delegate];

代替:)

您想将[[UIApplication sharedApplication] delegate]转换为MillersAppAppDelegate

您不小心将sharedApplication本身投放到MillersAppAppDelegate