作爲我的第一視圖加載我的位置控制器調用-(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