SORU
1 Aralık 2008, PAZARTESİ


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
1 Aralık 2008, PAZARTESİ


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];
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • infodirt

    infodirt

    11 Mart 2009
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012
  • xCraash

    xCraash

    6 Temmuz 2012