필자는 필자가 필요로했던 기능들 사이의 유사성을보기 시작한 여러 제공 업체를 다루기 위해 다른 클래스를 개발하기 시작하면서 다른 데이터 공급자에 연결할 응용 프로그램을 만들고 있습니다. 그래서 NSObject
에서 상속받은 기본 클래스를 만들고 모든 클라이언트에 분명히 나타나는 클래스의 일부 속성과 메서드를 노출하기로 결정했습니다. 상속, AFNetworking, 우수 사례?
이
기본 클래스@interface AhmBaseDataLoader : NSObject {
NSMutableArray *elementsArray;
}
- (void)loadElements:(NSString *)searchValue;
@property (nonatomic, strong) NSArray *Elements;
내가이 클래스를 상속 약 4 수업을, 그들 모두는 지금까지 내가 기본적인 NSURLSession
작업을 사용하고
loadElements:(NSString *)searchValue {
//I dO some data work here using NSURL and basic classes
NSData* data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
}
에 있습니다 데이터를로드하는 하위 클래스 지금까지 괜찮 았어. 이 모든 것은 백그라운드 스레드에서 발생합니다. 로드하는 HTTP 프로세스가 때로는 길어질 수 있으며 때때로 해당 프로세스를 취소 할 수 있어야합니다.
제 질문은 이러한 종류의 설정으로 afnetworking을 포함시키는 것이 유리한가요? 나는 그 매우 인기 있고 매우 빠르다는 것을 알고 있지만 혼란 스럽다. 만약 내가 그것을 사용했다면 나의 baseloader가 AFHTTPSessionManager
으로부터 상속 받거나 하나의 속성으로 만들겠습니까? 내 시나리오에서 어떤 것이 좋을까요?
예, 'AFHTTPSessionManager'에서 자체 클래스를 상속하는 것은 매우 일반적인 방법입니다. 당신은 상속 된 클래스에서'requestSerializer'와'responseSerializer'를 커스터마이징 할 수 있습니다. 심지어 당신 자신의 완료 핸들러로 자신의 모든 요청을 정의 할 수도 있습니다. – holex