Can I use a background thread to parse data?

后端 未结 4 1891
闹比i
闹比i 2021-01-07 10:35

I\'m using chcsvparser to parse data from a csv file on my apps launch. It\'s taking way too long to startup on main thread so I was thinking of doing this on the backgroun

4条回答
  •  误落风尘
    2021-01-07 10:47

    You can always pass objects between threads.

    Use the following code to create a thread and pass the object to it.

    [NSThread detachNewThreadSelector:@selector(myThreadSelector:) toTarget:self withObject:myObject];
    

    After the thread function is over you can pass the data back to the main thread using

    [self performSelectorOnMainThread:@selector(myMainSelector:) withObject:myReturnObject waitUntilDone:NO];
    

    you can pass the output NSArray from the parser to myMainSelector: and reload the tableview in it.

    -(void)myMainSelector:(id)sender
    {
        NSArray *arr = sender;
        tableDataArray = [NSArray arrayWithArray:arr];
        [yourTableView reloadData];
    }
    

    You can show an activity indicator while you are in the thread method.

提交回复
热议问题