对不起,这可能不是一个编程问题本身,而是更多关于iOS生命周期功能的性质的询问.
我有一个应用程序,我有一个函数创建四个数组并通过数据库查询填充它们.首先,我从viewDidLoad函数调用函数,但是,每当加载View时,在视图实际出现之前需要花费时间(大约3-4秒).所以我做的是我创建了一个activityViewIndicator,我的viewDidLoad函数看起来像:
- (void)viewDidLoad:(BOOL)animated{
[super viewDidLoad];
NSLog(@"viewDidLoad Entered");
[self.activityIndicatorView startAnimating];
partInput.delegate = self;
brandInput.delegate = self;
barcodeInput.delegate = self;
itemNameInput.delegate = self;
//initializeArrays is the function that initializes the arrays
[self initializeArrays];
[self.activityIndicatorView stopAnimating];
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为viewDidLoad当应用程序仍在上一个视图中时会触发该功能.视图仅在viewDidLoad完成后才会显示.所以我做的是将数组初始化移动到我的viewDidAppear函数,看起来像:
- (void)viewDidAppear:(BOOL)animated{
NSLog(@"viewDidAppear loaded successfully");
[self.activityIndicatorView startAnimating];
partInput.delegate = self;
brandInput.delegate = self;
barcodeInput.delegate = self;
itemNameInput.delegate = self;
[self initializeArrays];
[self.activityIndicatorView stopAnimating];
}
Run Code Online (Sandbox Code Playgroud)
但是,当我部署它时,没有任何延迟,使activityIndicatorView无用.
我的问题是,为什么在我看来,viewDidLoad和之间存在"性能差异" viewDidAppear?