سؤال

أنا أستخدم nsmutableurlRequest للاتصال بموقع ويب للحصول على استجابة JSON. أنا أفعل ذلك عن طريق توليد الطلب، ثم باستخدام NSurlConnection مع مندوب الذات لمعالجة اتصال ASYNC. لقد قمت بتطبيق جميع أساليب المندوب العادي:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection

تعمل جميعها بشكل مثالي مع استعادة البيانات، التعامل مع أي أخطاء تحدث، وما إلى ذلك. ولكن مع المهلة الموجودة على NSurLREQUEST SET يجلس هناك فقط إلى الأبد وليس لدي أي إشعار بحيث انتهت مهتما.

قراءة مستندات iPhone API لا أرى أي ذكر لما ينبغي يحدث عند حدوث المهلة، فقط يمكنك تعيين قيمة المهلة. ما ينبغي أن يحدث؟ لم أر أي أساليب مفوضة أخرى في API التي من شأنها أن تساعد. ليس لدي أن تحقق يدويا من المهلة، هل أنا؟ هي مهلة فقط للطلبات المتزامنة؟

هل كانت مفيدة؟

المحلول

يتم استلام مهلةك في هذه الطريقة:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

نصائح أخرى

سوف تحصل br تلقي مثل هذا النوع من iofo:

في فشل مع

خطأ: مجال الخطأ = رمز nsurlerrordomain = -1001 UserInfo = 0xed4870 "انتهت مهلة"

سلوك المهلة هو ضيق قليلا، انظر هذا الموضوع على منتديات مطور أبل.

ما فعلته كان هذا:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
    if (error.code == -1001){
        [self showTimeoutAlert];//My method to show dialog with timeout message.
    } else {
        [self showInvalidURLAlert];//My method to show dialog with bad URL message.
    }
}

كما قيل قبل -1001 هو المهلة، في اختبارات أخرى حصلت على -1003 (بالنسبة لعنوان URL السيئ أو عدم وجود اتصال متوفر).

كنت أهدف إلى علاج المهلة حتى أي شيء آخر تعاملت به على أنه عنوان URL السيئ.

ضع بعض بيانات السجل في كل طريقة وتحقق من ما يقدمونه. كلما انتهت الأمر، يمكنك بالتأكيد الحصول على إشعار على وحدة التحكم حول المهلة. أنا أحصل على هذا الإخطار. تحقق من التعليمات البرمجية الخاصة بك وإذا كنت لا تزال تواجه مشاكل، فأخبرنا بذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top