我宣佈,我的應用程序的委託符合協議多協議
<UIApplicationDelegate, SKPaymentTransactionObserver>
(即應用程序委託接口)。
編譯器告訴我在很多地方在我的代碼是:
warning: type 'id <UIApplicationDelegate>' does not conform to the 'SKPaymentTransactionObserver' protocol
這是怎麼回事?
我宣佈,我的應用程序的委託符合協議多協議
<UIApplicationDelegate, SKPaymentTransactionObserver>
(即應用程序委託接口)。
編譯器告訴我在很多地方在我的代碼是:
warning: type 'id <UIApplicationDelegate>' does not conform to the 'SKPaymentTransactionObserver' protocol
這是怎麼回事?
你ApplicationDelegate似乎缺少一些必要的代表,例如:
- (void)applicationWillResignActive:(UIApplication *)application
檢查什麼委託方法SKPaymentTransactionObserver
需要,並將它們添加到您的AppDelegate.m
您可能正在做類似[[SKPaymentQueue defaultQueue] addTransactionObserver:[[UIApplication sharedApplication] delegate]]
。由於-[UIApplication delegate]
被聲明爲返回id<UIApplicationDelegate>
,編譯器無法知道返回的對象是否會實現SKPaymentTransactionObserver協議。嘗試將代理分配給靜態類型爲您的代理類的變量,並將傳遞給您嘗試調用的方法,編譯器應該很高興。
你是否聲明過你的委託符合類聲明和變量聲明中的兩個協議(或者你訪問變量)? – 2011-01-27 02:45:01
@Bavarious:只在應用程序委託界面中。 – SK9 2011-01-27 02:49:11
發佈添加事務觀察者的代碼。 – 2011-01-27 03:05:17