के साथ सिंगलटन पैटर्न, मैं एक बाकी वेब सेवा तक पहुंचने के लिए AFHTTPClient के उप-वर्ग का उपयोग कर रहा हूं। मैं अपने सभी अनुरोधों को अपने एपीआई क्लाइंट के एक उदाहरण से संभालना चाहता हूं, इसलिए मैं सिंगलटन पैटर्न का उपयोग करता हूं।मेरे आईफोन एप्लिकेशन में पैरामीटर
यह ठीक काम करता है जब सेवा केवल एक बार यूआरएल पर चल रही है। मैं यूआरएल सेट करने के लिए निरंतर मूल्य का उपयोग कर सकता हूं।
अब, आवेदन के अंतिम संस्करण में, प्रत्येक ऐप वास्तव में किसी अन्य सेवा से बात करेगा जो कॉर्पोरेट नेटवर्क में स्थापित होगा।
तो मुझे रिमोट कॉन्फ़िगरेशन से सेवा यूआरएल मिल जाएगा। क्या सिंगलटन पैटर्न अभी भी एक अच्छी पसंद है? यदि एप के रनटाइम के दौरान यूआरएल वास्तव में भी बदल सकता है तो मुझे इसे पैरामीटर करना कैसा लगता है?
चियर्स
#import "FooAPIClient.h"
#import "AFJSONRequestOperation.h"
static NSString * const kFooAPIBaseURLString = @"http://192.168.0.1";
@implementation FooAPIClient
+ (instancetype)sharedClient {
static FooAPIClient *_sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedClient = [[self alloc] initWithBaseURL:[NSURL URLWithString:kFooAPIBaseURLString]];
});
return _sharedClient;
}
- (id)initWithBaseURL:(NSURL *)url {
self = [super initWithBaseURL:url];
if (!self) {
return nil;
}
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
[self setDefaultHeader:@"Accept" value:@"application/json"];
return self;
}
@end
मुझे लगता है कि आप वास्तव में कुछ कोड लिखने के लिए होगा। यदि URL क्रमशः बदलता है तो यह आपके सिंगलटन पर "परिवर्तन URL" फ़ंक्शन का एक साधारण मामला है। यदि आपके पास एक ही समय में कई यूआरएल सक्रिय हो सकते हैं तो आपको किसी प्रकार की निर्देशिका या उदाहरणों की सरणी की आवश्यकता होती है, या फिर इसका उपयोग करके कोड द्वारा "स्वामित्व" उदाहरण है, बनाम एक सिंगलटन के माध्यम से संबोधित किया जा रहा है। –
एक बार में केवल एक ही यूआरएल हो सकता है। समस्या यह थी कि, एक बार तत्काल, AFHTTPClient अपना यूआरएल नहीं बदल सकता है। तो समाधान पूरे AFHTTPClient को अपने ग्राहक की निजी संपत्ति के रूप में विस्तारित करने के बजाय है। यदि यूआरएल बदलता है, तो मैं अपने सिंगलटन में बस एक नया AFHTTP क्लाइंट चालू कर सकता हूं। इससे हो जाना चाहिए। – Jan