objective-c - AppDelegate 可能无法响应 'delegate'

标签 objective-c ios xcode4 delegates

我收到错误消息“MillersAppAppDelegate”可能无法响应“委托(delegate)”。我仍在学习所有这些,但并不完全理解,因为我读过这通常发生在头文件中未声明方法时。我正在使用 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];
}

该程序运行良好,但我有几个其他操作会产生相同的警告(所有处理 View 切换)。感谢您的帮助,我确定这是一个简单的答案,但我仍然是初学者。这也可能是 XCode3 和 XCode 4 之间的问题?

最佳答案

尝试

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

反而 :)

你想投[[UIApplication sharedApplication] delegate]MillersAppAppDelegate .

你不小心投了sharedApplication自己到MillersAppAppDelegate

关于objective-c - AppDelegate 可能无法响应 'delegate',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7627906/

相关文章:

objective-c - 将 block 存储在集合中

使用 IPP 打印机进行 iOS 打印

ios - LightBlue 找到设备,但未找到 iOS CoreBluetooth

ios - iOS 项目上的命令脚本问题

git - Xcode 不断提交 DerivedData 文件夹

ios - 将十进制转换为十六进制,添加到字节数组

objective-c - 子类化 NSView 以具有透明背景

objective-c - UITableView 委托(delegate)没有被调用

objective-c - 找不到 Cocoa 静态库的输出 .a(在 xcode 4 中)

objective-c - 如何在两个 UIView 之间切换?