Я реализовал AsyncTask (Android) в iOS, используя подкласс NSOperation.
-(id)initWithParam:(NSArray *)params{
if (self = [super init]) {
paramsArray = params;
}
return self;
}
- (void)start {
@autoreleasepool {
if (self.isCancelled)
return;
NSInteger result;
result = [self doInBackground:paramsArray];
dispatch_async(dispatch_get_main_queue(), ^{
[self postExecute:result];
});
}
}
- (BOOL) doInBackground: (NSArray *) parameters{
BOOL status = false;
int i;
for (i=0; i<100000; i++) {
NSLog(@"printing i::%d",i);
}
if (i == 100000) {
status = YES;
}
return status;
}
- (void) postExecute: (BOOL) deviceState{
if (deviceState) {
NSLog(@"Finished");
}
}
-(BOOL)isConcurrent{
return YES;
}
Это то, как я реализовал в iOS. Пожалуйста, предложите и все, что я хочу добавить для этой функциональности.
А также, когда я могу вызвать isExecuting и isFinished в подклассе NSOperation