抱歉,这本身可能不是一个编程问题,但更多的是对iOS生命周期功能性质的询问.
我有一个应用程序,其中有一个函数,可以创建四个数组,并通过数据库查询填充它们.起初,我从viewDidLoad
函数调用了这个函数,然而,每当加载视图时,视图实际出现之前都需要时间(大约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];
}
但是,这不起作用,因为当应用程序仍在前一个视图中时会触发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];
}
然而,当我部署它时,没有任何延迟,这使得activityIndicatorView毫无用处.
我的问题是,为什么在我看来viewDidLoad
和viewDidAppear
之间存在"性能差异"?