在每个iOS应用程序上都有一个app-delegate类,这意味着应用程序中的一个类必须实现应用程序事件的委托方法,例如didFinishLaunching等(通常类名包含“appDelegate”)。
我的问题是:假设我想在不同的类中实现app-delegate方法,而不是原来的xcode为我决定的。我怎么能这样做?
答案 0 :(得分:8)
您可以通过修改 main.m 文件中
UIApplicationMain(argc,argv,nil,nil);
的参数来执行相同的操作。
最后一个参数采用实现 UIApplicationDelegate 协议的类的名称。
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
所以在修改之后会有类似的东西
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([< Your class name will go here > class]));
[pool release];
return retVal;
答案 1 :(得分:1)
我通过更改Swift 3.0中的AppDelegate
默认模板实现
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
.....
与
import UIKit
@UIApplicationMain
class MyAppAppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
查看新的班级名称。