我搜索一个非常类似于iOS ()的函数(包括在viewDidLoad()或外部库中)。区别应该是,只有当应用程序第一次启动时才会使用搜索的函数,这意味着当用户打开应用程序时。每次加载视图时都使用ViewDidLoad()。但是,只有在运行时首次加载视图时,才会使用已搜索的函数xy()。
这是普通版本的
用户打开应用程序,视图1打开-> ViewDidLoad()视图1 ->用户打开视图2.->用户返回到视图1的-> ViewDidLoad()
I搜索这个
用户打开应用程序,视图1打开视图1的-> ViewDidLoad(),->用户打开视图2.->用户返回到View 1 -> ViewDidLoad() of View 1(这次不是函数xy(),因为视图已经加载在这个运行时中)
谢谢你的帮忙!
发布于 2016-11-05 16:14:16
您可以将需要运行一次的代码放在dispatch_once
块中,用于obj-c,并使用static var
表示。
Obj-c:
- (void)viewDidLoad
{
[super viewDidLoad];
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// code you place here will run once
});
}
Swift 3
static var didInit = false
override func viewDidLoad()
{
super.viewDidLoad()
if MyClass.didInit == false {
MyClass.didInit = true
// code you place here will run once
}
}
发布于 2016-11-05 16:02:29
你试过了吗
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
https://stackoverflow.com/questions/40440262
复制相似问题