NSOperation 하위 클래스를 사용하여 iOS에서 AsyncTask (Android)를 구현했습니다.iOS에서 NSOperation을 사용하는 AsyncTask 구현
-(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에서 구현 한 방식입니다.이 기능을 추가하고 싶은 점이 있으면 알려주세요. 나는 당신의 질문에 대한 대답에서 NSOperation 하위 클래스
감사합니다. @Rob. 실제로 샘플을 거기에 넣었습니다. 실제로 내 작업은 사용자 정의 Wi-Fi 장치에 연결하고 장치에서 데이터를 읽는 중입니다. NSOperation 하위 클래스를 선택하는 이유는 무엇입니까 – iOS
그래, NSOperation 하위 클래스로 래핑 할 수있는 좋은 예가 될 수 있습니다.질문은 단순히 작업이 실제로 동시인지 (즉, '시작'은 연결을 시작하고 나중에 호출되는 일부 대리자 또는 완료 블록 패턴이 있는지) 아닌지 여부입니다 (예 : '시작'은 Wi-Fi 장치와의 연결을 열지 만 장치와의 연결이 완료 될 때까지 돌아옵니다). 나는 그것이 전 (前者)이라고 가정하지만, 여러분의 질문에있는 당신의 모범은 후자와 더 비슷합니다. – Rob