我正在開發一個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