Я новичок. Я использую Grand Central Dispatch для заполнения массива (student_temp) в другом потоке. Эта часть работает нормально. Проблема в том, что я не могу передать массив в свойство класса (student_Array), где он используется во всем классе. Я не могу вернуть массив в основной поток.Как получить массив из Grand Central Dispatch?
он отлично работает, пока не вернусь к основной теме, и я не могу передать student_temp в student_Array (свойство) внутри или вне GCD.
Что я делаю неправильно, или лучше заполнить свойство массива с помощью GCD?
Благодарим за помощь. И, пожалуйста, попробуйте объяснить на нетехническом языке, если возможно, я новичок в этом.
- (void)viewDidLoad
{
[super viewDidLoad];
R2LFetcher *studentFetch = [[R2LFetcher alloc] init];
__block NSMutableArray *student_temp = [[NSMutableArray alloc] init];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
//long-running code goes here…
student_temp = [studentFetch fetchToStudentArray];
dispatch_async(dispatch_get_main_queue(), ^{
// code the updates the main thread (UI) here...
student_Array = student_temp;
});
});
student_Array = student_temp;
что student_Array – codercat