mer*_*ert 5 objective-c viewdidload ios
我有一个iOS应用程序.应用程序有2种不同的视图:Main和Settings.实际上,应用程序需要在主视图中使用之前加载和初始化某些库和框架.
当我把这个初始化放在viewDidLoad方法中时,它工作正常.但是当转到"设置"并返回"主视图"时,初始化将再次启动,这不是我想要的,并且应用程序会导致内存问题.
我需要一个在应用程序启动时调用一次的方法.任何的想法?
编辑:我切换到选项卡视图.它加载一次视图.这是另一种解决方案.
Mik*_*ler 28
您在其中一条评论中声明您不想将此代码放入,application:didFinishLaunching并且您希望将其保留在viewDidLoad中.您可以使用此代码段仅在第一次调用时运行代码:
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// code here
});
Run Code Online (Sandbox Code Playgroud)
内部块只执行一次.如果再次加载视图,则不会调用该块.请注意,有一个Xcode代码片段,您可以通过开始dispatch_once在编辑器中键入来访问它:


使用这个:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Run Code Online (Sandbox Code Playgroud)
它应该在你的appdelegate类中.
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
7394 次 |
| 最近记录: |