gpt4 book ai didi

ios - iPhone 应用程序从事件状态过渡到非事件状态

转载 作者:行者123 更新时间:2023-11-29 01:07:36 25 4
gpt4 key购买 nike

假设我正在构建一个 iPhone 应用程序,该应用程序在其中一个屏幕中接受用户名和密码。当我输入用户名时,我收到一个高优先级事件,例如电话。此时,我的应用程序将从事件状态转变为非事件状态。

我的问题是:我需要在我的应用程序中执行哪些步骤,以便我可以保存当前的应用程序状态(和输入的信息),以便我可以在我的应用程序稍后激活时恢复相同的状态?

这个问题是在一次 iOS 采访中被问到的。

我的答案是在 applicationWillResignActive 委托(delegate)方法中处理事件到非事件状态转换,以保存部分输入的用户信息详细信息并在 applicationDidBecomeActive 方法中恢复它。应用程序 UI 状态,我们不必处理,因为操作系统会处理它。

看起来面试官对我的回答并不满意。他一直问我,您将如何处理(您在应用程序中采取的步骤)从事件状态到非事件状态的转换,然后在应用程序中转换到事件状态,以便应用程序状态恢复/完整?

最佳答案

您的回答是正确的,面试官可能希望您为这些方法中的每一种命名,而您很可能只命名了您所说的两种方法。对于某些 App UI 状态,还有一些其他委托(delegate)方法,例如 applicationDidEnterBackgroundapplicationWillEnterForeground

如果您阅读注释中这些方法的默认描述,您将更好地了解每个方法的用途。例如,applicationWillResignActive特指来电或短信:

// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.

// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.

applicationDidEnterBackground 用于在用户关闭您的应用程序时保存用户数据:

// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.

// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.

查看新项目的 AppDelegate.m 文件,其中的注释对于准确理解哪些文件将处理哪些状态以及何时应该使用每个文件非常非常有用。

此外,请务必阅读 Apple 有关处理应用程序状态的文档:The App Life Cycle

关于ios - iPhone 应用程序从事件状态过渡到非事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36158574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com