Yönetme birden çok zaman uyumsuz NSURLConnection bağlantıları
Aşağıdaki gibi görünen sınıfımda yinelenen kod bir ton var:
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self];
Bu sorun ile zaman uyumsuz istekleri olduğunda size çeşitli istekleri olacak ve bir temsilci tayin için onları tedavi gibi bir varlık, bir sürü dallanma ve çirkin kod başladığı için formüle:
Ne tür veriler döneceğiz? Eğer bu varsa, bu, başka bir şey yapın. Kimlikleri ile görüş etiketi edebileceğin gibi bu zaman uyumsuz istekleri etiketlemek mümkün, çeşit olması bence yararlı olacaktır.
Strateji birden çok zaman uyumsuz istekleri işleyen bir sınıf yönetmek için en verimli ne olduğunu merak ettim.
CEVAP
Bir CFMutableDictionaryRef, NSURLConnection ile ilişkili anahtarlı yanıtları takip ediyorum. yani:
connectionToInfoMapping =
CFDictionaryCreateMutable(
kCFAllocatorDefault,
0,
&kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
Garip NSMutableDictionary yerine bunu kullanmak gibi görünebilir ama bu CFDictionary sadece anahtarları (NSURLConnection) NSDictionary kopya ise korur çünkü ben onun anahtarları (NSURLConnection kopyalamayı desteklemiyor).
Bu işlem tamamlandıktan sonra:
CFDictionaryAddValue(
connectionToInfoMapping,
connection,
[NSMutableDictionary
dictionaryWithObject:[NSMutableData data]
forKey:@"receivedData"]);
ve şimdi ben bir "bilgi" sözlük için her bir veri bağlantısı kullanmak için takip hakkında bilgi bağlantısı ve "bilgi" sözlük zaten içeren bir değişken veri nesnesini kullanmak için saklayın cevap veri olarak geliyor.
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSMutableDictionary *connectionInfo =
CFDictionaryGetValue(connectionToInfoMapping, connection);
[[connectionInfo objectForKey:@"receivedData"] appendData:data];
}
zaman uyumsuz/Görev vs bir boşluk dönm...
PHP çağırır zaman uyumsuz?...
node.js zaman uyumsuz libs...
PhantomJS uzun bir süre söyleyerek &qu...
Ne zaman ADB Shell Birden fazla cihaz...