O hata var uygulanan rağmen bir protokolde ilan Ben kendimi sentezlerim. uygulanmasıOtomatik özelliği sentez onun
@interface BGProfileView : UIViewController
@end
biz UIViewController bir NavigationController özelliğine sahiptir bildiği gibi bir UIViewController olup gelince
@protocol BGIhaveNavigationController <NSObject>
@property (readonly)UINavigationController * navigationController;//This is the problematic property
@end
@protocol BGCommonProtocol <NSObject>
@end
:
Bu
protokoldür. Yani ne yanlış? Ben ekleyerek uyarıyı kaldırabilirsiniz@interface BGProfileView() <BGReviewsTableDelegateProtocol>
BGReviewsTableDelegateProtocol protokolü BGIhaveNavigationController protokolünü
devralır: Bunu kullandığınızda
şeyler sorunlu olsun
-(UINavigationController *) navigationController
{
return self.navigationController;
}
Ama bu çok saçma. Bir anlamda
-(UINavigationController *) navigationController
{
return self.navigationController;
}
-(UINavigationController *) navigationController
zaten bu özellik uygulama 'başka bir yerde' dir derleyici söyler ve onu gereklilik olacağını güvenmesi gereken
@dynamic navigationController; – Wain
çalışır. Ama neden? navigationController orada değil. –
Varolan bir sınıftaki bir yöntemi değiştirmek için bir protokol kullanıyorsunuz. Bu asla iyi bir fikir değildir. @dynamic, çalışma zamanında orada bir uygulama olacağını vaat ettiği için çalışır, ancak bu protokole uyan her şey bir görünüm denetleyicisi ise, protokolün navigationController özelliğine neden ihtiyacı vardır? – jrturton