Я унаследовал кодовую для проекта IOS и мне интересно, что смысл этого кода:Bizarre Objective-C резьб
-(void) someMethod {
FMDatabaseQueue *dbQueue = self.db;
// unimportant stuff
[Async series:@[
^(successBlock success, failureBlock failure) {
dispatch_async(dispatch_get_main_queue(), ^{
[dbQueue inDatabase:^(FMDatabase *db) {
// do database stuff
}];
});
},
^(successBlock success, failureBlock failure) {
dispatch_async(dispatch_get_main_queue(), ^{
[dbQueue inDatabase:^(FMDatabase *db) {
// do other database stuff
}];
});
}
];
}
Есть ли причина, чтобы закодировать что-то вроде этого?
Мое мнение, что Async
и dispatch_async()
назад к основной резьбе делает резьбу бессмысленной.
Это не делает его бессмысленным: Async может выполнить некоторый код в фоновом режиме, а затем вызвать блок завершения, который что-то делает в основном потоке. Независимо от того, что делает Async, может потребоваться значительное количество времени ... – fabian789