我正在开发一个SDK,在我们的SDK集成的应用程序中调用任何UIViewController
的viewDidLoad
方法时,我将不得不打电话给我们的服务器。我试图用分类,如下图所示:iOS SDK - 跟踪viewDidLoad方法
#import "DymmyViewController.h"
@interface DymmyViewController()
@end
@protocol DummyDelgate;
@interface UIViewController (DummyAddition)
-(void)viewDidLoad;
@end
@implementation DymmyViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
@end
@implementation UIViewController (DummyAddition)
-(void)viewDidLoad{
//server call
}
@end
什么也没有发生这个,我得到一个警告说“Category is implementing a method which will also be implemented by its primary class
”
我明白这不是得到这个工作的方式。有没有其他办法可以做到这一点?可能会使用NSNotification
?
为什么要这么做-----接口的UIViewController(DummyAddition) - (无效)viewDidLoad中; @end ? – User511
1)在类类中声明'viewDidLoad'是没有意义的,因为'UIViewController'已经有了这样的方法。 2)切勿尝试覆盖类别中的现有方法。这是未定义的行为。类别只应添加新的方法/属性,而不要试图替换它们。 – rmaddy
宁愿有一个基本的视图控制器,您的所有viewcontroller继承,并做任何你需要做的基地 – Fonix