ile bile verileri koruyamıyor AFNetworking kütüphanesini bir süredir kullanıyorum ve bir sorunla karşılaştım. Uzak bir PHP dosyasından veri almak için GET işlevini kullanan aşağıdaki kodu kullandım.__block
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
__block NSDictionary *data = nil;
[manager GET:@"..." parameters:nil success:^(NSURLSessionTask *task, id responseObject) {
data = responseObject;
} failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
_objects = [[data allKeysForObject:@"type"]mutableCopy];
Gördüğünüz gibi, ben yerel bir NSDictionary değişken oluşturulur ve başka bir yığın taşması sonrası için bana anlattığına göre, nil olarak ayarlayın. Köşeli parantez içinde her şey yolunda görünüyor; veri doldurulur. Ancak, parantezlerin dışında data
tamamen boş. Bunun neden işe yaramayacağına dair bir fikrin var mı? Şimdiden teşekkürler.
DÜZENLEME gibi matiboo nazik yorumlarda belirtildiği , ben AFNetworking her şeyden önce yürütülecek oldu ana farklı bir iş parçacığı üzerinde koştu fark etti.
Hala Ancak bunu düzeltmek nasıl bilmiyorum. Bunu işlemek için bir işlev yapmalı mıyım?
Sen ET'lerle içinde kuyrukta hakkında okumalısınız. 'Başarı' ve 'başarısızlık' bloğu, sunucu yanıt verildikten sonra arka planda sırayla yürütülür. Dış NSLog, [Yönetici ....] komutundan hemen sonra Ana İletide yürütülür. Bu, IO’larda Thread And Queue ile ilgili bir bağlantıdır. Sana AFNetworking [link] (https://www.raywenderlich.com/4295/multithreading-and-grand-central-dispatch-on-ios-for-beginners-tutorial) –
Ah kullanmadan önce okuyun gerektiğini düşünüyorum. . Anlıyorum. Bunu çözebilmem için herhangi bir yolu var mı? –
Sunucudan dönen Json ile ne yapmak istediğinizi bilmiyorum. Json iadesi işlemine gereksinim duyarsanız, bunu globar değişkenine göre kaydedin (benim _object'iniz), işlemek için bir işlev yazın. Ve içeride 'success' blok, sen [weakSelf HandleData]' Bu responseObject –