作为我的第一视图加载我的位置控制器调用-(void)locationFound
其代表,这是[UIApplication sharedApplication].delegate
(我的AppDelegate) 我有只是要求对于一个要求的方法locationFound相应的协议很快。添加协议的appDelegate不登记
我必须声明,像这样在我的AppDelegate头的协议坚持:
@interface ProgramAppDelegate : UIResponder <UIApplicationDelegate, LocationFoundProtocol>
一切工作正常 - - 除了我得到一个警告,当我在我的位置控制器指定的委托 - 就像这样:
self.positioningBrain.positioningNetworkingDelegate = [UIApplication sharedApplication].delegate;
它告诉我:
Assigning to 'id<LocationFoundProtocol>' from incompatible type 'id<UIApplicationDelegate>'
好像它根本不看日在我的AppDelegate事实上符合我指定的协议 - 即使它是在头文件中声明的。
XCode注册这种不匹配有什么原因吗?我对代码的工作原理并不感到惊讶,因为无论如何协议都应该是语义的,但是如果有更好的方法可以做到这一点,我想知道。
只是确定 - 你是否在任何你想要做这项任务的地方,都会有''#import“ProgramAppDelegate.h”'“? – 2012-08-08 20:58:29
你要投'[UIApplication的sharedApplication] .delegate',http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/ TP40006728-CH3-SW24 – Vervious 2012-08-08 20:58:45