iphone - 应用程序启动操作

标签 iphone objective-c ios xcode

我希望每次我的应用程序启动时(甚至可能从后台恢复)它都会执行一个操作(例如 TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init]; )。
我还希望可以通过应用程序设置包中的开关禁用此操作(在启动时)。我该怎么办?感谢您的关注。

p.s.如果我使用了不正确的词,我深表歉意。我是初学者:)

最佳答案

UIApplicationDelegate 中提供了几种可以在应用程序委托(delegate)中实现的方法。协议(protocol)。

当您的应用首次启动时applicationDidFinishLaunching叫做。

当你的应用从后台恢复时applicationWillEnterForeground叫做。

添加到设置包中的开关将有一个键,即 NSString ,与之相关。开关存储一个编码为 NSNumber 的 bool 值。在标准 NSUserDefaults在那个键下。您可以从标准用户默认值中读取 bool 值,并使用它来确定是否执行操作。

关于如何添加设置包的 Apple 文档是 here .
在您的设置包中,您需要一个拨动开关。您将在标准用户默认值中查找的 key 由 Key 指定。 field 。拨动开关的默认值由 DefaultValue 指定。 field 。 See here

这是您需要在 applicationDidFinishLaunching 中执行的操作方法

static NSString *const kTakeActionOnLaunchSettingKey = @"Key";

- (void)applicationDidFinishLaunching
{
  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
  BOOL doTakeActionOnLaunch = [userDefaults boolForKey:kTakeActionOnLaunchSettingKey];
  if (doTakeActionOnLaunch) {
    // Do something
  }
}

关于iphone - 应用程序启动操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7938168/

相关文章:

iphone - map View 中的延迟加载?

objective-c - objective-c :componentsSeperatedByRegex

c# - 单点触控 : Can't create DbParameterCollection?

ios - 如何让 SceneKit 不在整个屏幕上

ios - 无限循环 UITableView

iphone - 从 IBAction 方法调用时听不到 AudioServicesPlaySystemSound 声音

iPhone-避免在 UIImagePickerController 中进行视频压缩

objective-c - 分析autorelease调用class_createInstance返回的对象报错

objective-c - 获得正确的 NSDate 值——这是最有效的方法吗?

ios - 如何锁定 CocoaPod 库版本?