首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

application:didFinishLaunchingWithOptions:对RBAppDelegate进行子类化时不执行

application:didFinishLaunchingWithOptions:是iOS开发中的一个应用程序委托方法,它在应用程序启动完成后被调用。当我们对RBAppDelegate进行子类化时,如果该方法没有被执行,可能有以下几个原因:

  1. 子类中未正确调用父类的实现:在子类中重写该方法时,需要确保调用了父类的实现,以确保应用程序的启动过程能够正常进行。可以通过调用super方法来实现,例如:super application:application didFinishLaunchingWithOptions:launchOptions。
  2. 子类中存在错误的方法签名:在子类中重写该方法时,需要确保方法签名与父类的一致。方法签名包括方法名、参数类型和返回类型。如果方法签名不一致,系统将无法正确识别并调用子类的方法。可以通过复制父类方法的签名来避免错误。
  3. 子类中存在其他错误导致方法未被执行:除了上述两个常见原因外,还可能存在其他错误导致该方法未被执行。例如,可能存在其他代码逻辑错误、条件判断错误或者其他方法的调用错误等。需要仔细检查代码,确保没有其他错误导致该方法未被执行。

对于RBAppDelegate进行子类化时不执行application:didFinishLaunchingWithOptions:方法的问题,可以通过以上几个方面进行排查和调试。如果问题仍然存在,可以考虑使用调试工具进行进一步的定位和排查,例如使用断点调试、日志输出等方式来查看代码执行过程中的具体情况。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

设计模式 - 命令模式&中介者模式&组合模式~AppDelegate 解耦

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey...那这种方式的弊端想必大家可以很明显的看出来,上述代码示例只是把didFinishLaunch方法进行了解耦,其他方法并没有进行改造,如果其他方法进行改造,也需要实现上述一套,会有些冗余。...AppDelegate继承 open class ApplicationServiceManagerDelegate: UIResponder, UIApplicationDelegate { /// 子类需要在构造函数中进行赋值...(application, didFinishLaunchingWithOptions: launchOptions) ??...该套解耦方案进行完善,沉淀出的轮子地址为ApplicationServiceManager[4]。功能比较轻量级,欢迎大家使用。

55420

干货 | Trip.com APP 启动优化实践

至于做法,可以是优化方法内的实现,使其运行更快;也可以将方法执行的线程切换到子线程,以并发的形式降低其整个启动过程的影响。...2.2.6 启动任务并发 想象一下,如果application:didFinishLaunchingWithOptions:里面执行的所有启动任务不作任何处理,那么代码框架将会很乱,你的优化也只能单点单点去做...所以我们将application:didFinishLaunchingWithOptions:阶段所有方法任务化,一个任务做一种类型的事。...1)预加载 首页渲染必须的数据,比如一个icon,或者一个翻译的数据,我们通过在启动任务(之前提到的拆分的并发任务)中新增加一个预加载启动任务,专门负责在application:didFinishLaunchingWithOptions...更进一步,其实可以对首页用到的资源在运行时作个标记,记录到磁盘,下次启动的时候读取这个记录,用到的资源进行提前预加载,这样避免hard code很多资源名在代码中。

56720

iOS四大对象之UIWindow及四大对象之间的关系1. UIWindow使用纯代码加载根控制器2. UIWindow的创建过程3. 四大对象之间的关系

也就说,没有UIWindow,就看不见任何UI界面 1.1 手工创建一个UIWindow - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions...主窗口同一时刻只能有一个UIWindow *keyW = application.keyWindows; 1.2 window进行操作 // 让当前UIWindow变成keyWindow,并显示出来...不要直接调用 - (void)becomeKeyWindow; //为子类提供。...UIWindow的创建过程 2.1 在有storyboard中的创建过程 先执行Main函数,执行UIApplicationMain(),根据其第三个和第四个参数创建Application 创建代理,并且把代理设置给...5.4.2 在纯代码中的创建过程 先执行Main函数,执行UIApplicationMain(),根据其第三个和第四个参数创建Application 创建代理,并且把代理设置给application 开启一个事件循环

1.7K30

【iOS 开发】UIApplicationDelegate 中两个值得注意的地方

01 - app 的第一个执行代码的机会是什么 新建工程的时候,Xcode 默认创建的 AppDelegate 文件里面会有 UIApplicationDelegate 的 6 个代理方法,其中第一个是...application:didFinishLaunchingWithOptions:,我们通常会在这里进行 SDK 的初始化以及其他一些配置等等,但是 app 的第一个执行代码的机会其实是 application...这个知识点可以用于面试,以及对于一些初始化时机有要求的 SDK 配置的 bug 排查。 ---- 02 - 应该在哪个回调里面存储数据 ?...applicationDidEnterBackground 官方已经写清注释,应该在 applicationDidEnterBackground: 来进行数据的保护性存储,但是考虑一种特殊情况:直接连按...background 状态的,我们应该按照官方规范,在 applicationDidEnterBackground: 方法而不是在可能被调用更多次的 applicationWillResignActive: 方法里面进行数据的保护性存储

76530

iOS开发系列——第一个iOS程序和运行过程

直接运行看一下(注意这里已经切换模拟器为iPhone5),没错我们看到了一个iOS应用程序: 222.png 程序的运行过程 在几乎所有的程序开发中程序一般都是从main函数开始运行的,那么IOS程序也例外...*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { return YES; } - (void...*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;程序启动之后执行,只有在第一次程序启动后才执行,以后不再执行...:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog...另外一般如果应用程序要保存用户数据会在注销激活中进行(而不是在进入后台方法中进行),因为如果用户双击Home不会进入后台只会注销激活;如果用户恢复应用状态一般在进入激活状态时处理(而不是在进入前台方法中进行

1.9K60

iOS四大对象之AppDelegate及UIApplicationMain函数程序启动过程1. AppDelegate应用程序代理2. UIApplicationMain函数程序启动过程

默认创建出来,有七个方法,解读如下: // 程序第一次加载完毕,就会调用此方法 - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions...执行这个。...delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication对象中的delegate属性 接着会建立应用程序的Main Runloop(事件循环),进行事件的处理...(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法) 程序正常退出时UIApplicationMain函数才返回 ?...:didFinishLaunchingWithOptions:方法 在application:didFinishLaunchingWithOptions:中创建UIWindow 创建和设置UIWindow

1.1K50

UI篇-关于单个页面屏幕旋转要注意的问题

默认读取plist里面设置的方向(优先级最高)等同于Xcode Geneal设置里面勾选 Paste_Image.png application window设置的级别次之 application支持所有...controller都继承BaseViewController ,在BaseViewController中重写- (BOOL)shouldAutorotate 方法中 return NO; 默认关闭,,在需要开启的子类中再次重写...按照上面的方法我确实达到了,单页面旋转,其他页面旋转的效果,但是有个问题: 在页面旋转的情况下,状态栏确会随着手机的旋转而旋转,着实蛋疼。目前不清楚为什么一样的设置,在两个项目中效果不一样。...手机方向不发生变化时就不会掉用 - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow...下面是网上的一个方法(未验证),在didFinishLaunchingWithOptions函数中: //注册通知 UIDevice *device = [UIDevice currentDevice

3.5K20

iOS 推送(本地推送)推送介绍总结使用步骤其他常用API

今天介绍本地推送,因为本地推送涉及到苹果的推送服务器,所以测试本地推送功能不需要开发者证书,甚至在模拟器上测试也可以。...我们都知道点击手机桌面的App图标启动时, -[AppDelegate application:didFinishLaunchingWithOptions:]的第二个参数 launchOptions都为...但是如果App已经被系统Kill掉或者被我们自己完全退出的情况下,点击通知时,也会启动App,也会调用如下方法: -[AppDelegate application:didFinishLaunchingWithOptions...:didFinishLaunchingWithOptions:],而是调用: - (void)application:(UIApplication *)application didReceiveLocalNotification...:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override

1.5K40

iOS 启动连续闪退保护方案

连续闪退修复 检测到连续闪退后,接下来要尝试闪退进行修复,这里先分析可能的闪退原因,再结合微信读书的例子说明修复流程。...,否则执行 5 尝试下载并执行 JSPatch 补丁 这里是为了解决上述第4点 - 代码 bug 导致的闪退,使用 JSPatch [github]可以进行热修复。...实现 检测和连续 crash 并修复需要修改原 -application:didFinishLaunchingWithOptions: 逻辑,有几种方法: 直接修改 -application:didFinishLaunchingWithOptions...新建一个 SubAppDelegate 类来继承 AppDelegate,覆盖 -application:didFinishLaunchingWithOptions: 方法,然后把 main() 函数中的...上述三种方案,现有项目改动代价是 1 > 2 > 3。因此,我们使用源码修改代价最小的方案 3 来替换 -application:didFinishLaunchingWithOptions:。

2.3K40

iOS 启动连续闪退保护方案

三.连续闪退修复 检测到连续闪退后,接下来要尝试闪退进行修复,这里先分析可能的闪退原因,再结合微信读书的例子说明修复流程。...2,否则执行 5 尝试下载并执行 JSPatch 补丁 这里是为了解决上述第4点 - 代码 bug 导致的闪退,使用 JSPatch [github]可以进行热修复。...:didFinishLaunchingWithOptions: 逻辑,有几种方法: 直接修改 -application:didFinishLaunchingWithOptions: 方法。...新建一个 SubAppDelegate 类来继承 AppDelegate,覆盖 -application:didFinishLaunchingWithOptions: 方法,然后把 main() 函数中的...上述三种方案,现有项目改动代价是 1 > 2 > 3。因此,我们使用源码修改代价最小的方案 3 来替换-application:didFinishLaunchingWithOptions:。

5.8K10

解决 iOS 15 上 APP 莫名其妙地退出登录 解决 iOS 15 上 APP 莫名其妙地退出登录

我知道在AppDelegate.application(_:didFinishLaunchingWithOptions:)之前,“受保护的数据” 是不可用的,但它仍然没有意义,因为为了重现这个问题,我正在执行以下操作...再次仔细查看时间戳: main.swift — 11:38:47 AppDelegate.init() — 11:38:47 AppDelegate.application(_:didFinishLaunchingWithOptions...结论 从iOS 15开始,系统可能决定在用户实际尝试打开你的应用程序之前进行 "预热",这可能会增加受保护的数据在你认为应该无法使用的时候的被访问概率。...通过等待application(_:didFinishLaunchingWithOptions:)委托回调来保护自己,如果可能的话,留意UIApplication.isProtectedDataAvailable...我们仍然发现了非常少的非致命问题,在application(_:didFinishLaunchingWithOptions:)中报告isProtectedDataAvailable为false,在我们可以推迟从钥匙串阅读的访问令牌之外

1.5K20

iOS 点击通知打开对应页面

方法中进行判断是否通过点击通知进入app,设置全局变量,在需要跳转的页面根据全局变量进行跳转 2) 应用在前台或后台 在所有可跳转的页面添加消息的观察者 override func viewWillAppear...当然也可以不用通知去打开页面 像之前那种定义全局变量进行判断也是可以的 App启动方法解析 - (BOOL)application:(UIApplication *)application...didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 说明:当应用程序启动时执行,应用程序启动入口。...只在应用程序启动时执行一次。application参数用来获取应用程序的状态、变量等,值得注意的是字典参数:(NSDictionary *)launchOptions,该参数存储程序启动的原因。...- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

2.4K20

解决 iOS 15 上 APP 莫名其妙地退出登录

我知道在AppDelegate.application(_:didFinishLaunchingWithOptions:)之前,“受保护的数据” 是不可用的,但它仍然没有意义,因为为了重现这个问题,我正在执行以下操作...再次仔细查看时间戳: main.swift — 11:38:47 AppDelegate.init() — 11:38:47 AppDelegate.application(_:didFinishLaunchingWithOptions...结论 从iOS 15开始,系统可能决定在用户实际尝试打开你的应用程序之前进行 "预热",这可能会增加受保护的数据在你认为应该无法使用的时候的被访问概率。...通过等待application(_:didFinishLaunchingWithOptions:)委托回调来保护自己,如果可能的话,留意UIApplication.isProtectedDataAvailable...我们仍然发现了非常少的非致命问题,在application(_:didFinishLaunchingWithOptions:)中报告isProtectedDataAvailable为false,在我们可以推迟从钥匙串阅读的访问令牌之外

85310

iOS 点击推送消息跳转指定界面 —总结篇app 在后台app被杀死

1.png 这个是转成本地推送的方法,当然对于里面数据的转换你要根据你们的业务需求和后台的返回情况做转化,因为你在之后点击本地推送的时候还是要根据你转本地推送所传的值进行对应的跳转的 - (void)...requestLocationNotification:(NSDictionary *)payData{ if (IOS_VERSION >= 10) { //进行用户权限的申请 //...这个方法没有走,先走的didReceiveRemoteNotification再走的 didFinishLaunchingWithOptions 。...这时候很多app的基本设置,比如做的跟视图,自动登陆,等等很多的注册什么的都还没执行,就直接跳转这个是很麻烦的处理起来,所以在这里直接在下面的方法中做处理 - (BOOL)application:(...UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions ?

8.3K71

推送-JPush(极光推送)的使用

因此,熟知并掌握推送原理及方法,每一个开发者来说都是必备技能,每一个依赖 App 的公司来说都至关重要。本文主要讨论项目中使用极光推送来实现推送业务。...为什么要使用第三发推送 自己做推送从开发成本上来说需要专人进行开发,并且需要一定数量的服务器和带宽支持,在开发完成后的使用过程中还需要有专人进行维护。...:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self...- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions...关机重启手机 卸载这个程序重新安装(很关键,大部分因为这) 彻底杀掉程序,点击通知进入应用会加载 application:(UIApplication *)application didFinishLaunchingWithOptions

6.5K10
领券