Извините, но это может быть не вопрос программирования, а более подробная информация о характере функций жизненного цикла 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
?