我试图ViewController.m从方法AppDelegate.m内部 调用my的现有方法applicationDidEnterBackground,所以我找到了这个链接:从app delegate调用UIViewController方法,它告诉我实现这段代码:
在我的ViewController.m中
-(void)viewDidLoad
{
[super viewDidLoad];
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate.myViewController = self;
}
Run Code Online (Sandbox Code Playgroud)
在我的AppDelegate中:
@class MyViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (weak, nonatomic) MyViewController *myViewController;
@end
Run Code Online (Sandbox Code Playgroud)
在AppDelegate的实现中:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[self.myViewController method];
}
Run Code Online (Sandbox Code Playgroud)
所以我把这个代码放在我的项目中,它工作得很好,但我不明白代码如何工作,一行一行.怎么sharedApplication办?为什么我必须设置一个委托而不是只创建一个ViewController实例,如:
ViewController * instance = [[ViewController alloc] init];
[instance method];
Run Code Online (Sandbox Code Playgroud) 在swift中,我需要进行这样的切换:
switch char {
case "+": statement 1; statement 3
case "-": statement 2; statement 3
default: statement 3
}
Run Code Online (Sandbox Code Playgroud)
但是,我不想复制语句3,因为它实际上很长,所以我正在寻找一种替代方法(如果存在)以某种方式使交换机检查每个案例条件,并执行默认值.我到处寻找解决方案,我想它可能不存在,但因为它看起来像普通的东西,我希望你的同性恋可以帮助我......