AppDelegate.h:
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title;
AppDelegate.m:
+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title {
UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
[MBProgressHUD hideAllHUDsForView:window animated:YES];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
hud.labelText = title;
return hud;
}
В someOtherMethod в AppDelegate.m:
[self showGlobalProgressHUDWithTitle:@"Checking for Updates"]; //No visible interface for AppDelegate declares the selector 'showGlobalProgressHUDWithTitle:'
Почему? Другие методы в интерфейсе видны, а почему не этот? Это связано с тем, что это метод класса?
[[UIApplication sharedApplication] delegate]
возвращает экземплярAppDelegate
, а не сам класс. Чтобы вызвать метод класса, вам нужно сделать[AppDelegate classMethodName]
. - person Rog   schedule 12.09.2012