OC的編譯器在編譯后會在每個方法中加兩個隱藏的參數:
一個是_cmd,當前方法的一個SEL指針。
一個是self,指向當前對象的一個指針。
demo:
//應用程序退出后執行代碼
- (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"程序退出后執行");
NSArray *modules = [[ModuleManager sharedInstance] allModules];
for (id<ModuleProtocol> module in modules) {
if ([module respondsToSelector:_cmd]) {
[module applicationWillTerminate:application];
}
}
[[NSUserDefaults standardUserDefaults] synchronize];
}