2013-02-15 54 views
5

मैं छवियों को अपलोड करने के लिए AFJSONRequestOperation का उपयोग कर रहा हूं।AFNetworking के लिए टाइमआउट

छवियों की अपलोड करने की संख्या के मामले में, टाइमआउट त्रुटि के साथ कुछ अनुरोध विफल हो गए हैं।

मैं

AFJSONRequestOperation *operation = ... 
[operation start]; 

और

AFJSONRequestOperation *operation = ... 
[operations addObject:operation]; 
... 
[client enqueueBatchOfHTTPRequestOperations:operations progressBlock:nil completionBlock:nil]; 

की कोशिश की लेकिन, फिर भी प्रयास विफल।

मुझे लगता है कि ऑपरेशन बनने पर समय गिनती शुरू होती है।

तो, क्या मुझे अपने स्वयं के एल्गोरिदम के लिए अनुरोधों को एक-एक करके शेड्यूल करना चाहिए?

उत्तर

1

कुछ दिलचस्प बात यह है कि AFNetworking कई NSOperations बनाएगा क्योंकि सिस्टम के पास संसाधन हैं और उन्हें एक साथ चलाने के लिए। समस्या यह है कि ऐप/कंप्यूटर केवल इतना ही नेटवर्क कनेक्शन बना सकता है। जैसे ही ऑपरेशन शुरू होता है, गिनती शुरू होती है। सभी व्यावहारिक उद्देश्यों के लिए, आईफोन पर आप मुद्दों को नहीं देख सकते हैं क्योंकि कई संचालन चलाने के लिए कम संसाधन हैं, लेकिन सिम्युलेटर एक समय में सैकड़ों धागे चला सकता है (अधिकतम समवर्ती नेटवर्क कनेक्शन से अधिक)।

मेरा सुझाव NSOperationQueueDefaultMaxConcurrentOperationCount से अधिक उचित समेकित संचालन (AFHTTPClient I Think में स्थित) की संख्या को सीमित करना है जो डिवाइस को जितना संसाधन है उतना चलाने की अनुमति देता है।

+0

आपको इस बग में रुचि हो सकती है, फिर: https://github.com/AFNetworking/AFNetworking/issues/953 –

+0

दूसरा विकल्प प्रत्येक ऑपरेशन को पिछले ऑपरेशन को पूरा करने पर निर्भर करता है। –