سؤال

أريد استخدام مكتبة ASIHTPREQUEST لتنزيل بعض الملفات، وأنا لا أختبر برمزهم ولا يعمل في حين يعمل نفس الرمز على عينة

هذا هو رمزي لاستدعاء وجهة نظرهم

QueueViewController * QueueViewController = [[QueueViewController ALC] initwithnibname: @ "قائمة انتظار" حزمة: NIL]؛ [self.View addsubview: QueueViewController.view]؛

هذا الرمز لتقديم الطلب

- (IBAction)fetchThreeImages:(id)sender
{
    [imageView1 setImage:nil];
    [imageView2 setImage:nil];
    [imageView3 setImage:nil];

    [networkQueue cancelAllOperations];
    [networkQueue setDownloadProgressDelegate:progressIndicator];
    [networkQueue setRequestDidFinishSelector:@selector(imageFetchComplete:)];
    [networkQueue setShowAccurateProgress:[accurateProgress isOn]];
    [networkQueue setDelegate:self];

    ASIHTTPRequest *request;
    request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/logo.png"]] autorelease];
    [networkQueue addOperation:request];

    request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/trailsnetwork.png"]] autorelease];
    [networkQueue addOperation:request];

    request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/sharedspace20.png"]] autorelease];
    [networkQueue addOperation:request];

    [networkQueue go];

}


- (void)imageFetchComplete:(ASIHTTPRequest *)request
{
    UIImage *img = [UIImage imageWithData:[request responseData]];
    if (img) {
        if ([imageView1 image]) {
            if ([imageView2 image]) {
                [imageView3 setImage:img];
            } else {
                [imageView2 setImage:img];
            }
        } else {
            [imageView1 setImage:img];
        }
    }
}

يبدو أن قائمة الانتظار قيد الإعداد بشكل صحيح ولكن لا يتم استدعاء طريقة imageFetchcomplete عند الانتهاء من التنزيل.

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

المحلول 2

حصلت على المشكلة الثابتة، كانت المشكلة أنني لم أكن Alloc Netterqueue.

كنت Alloc Netterqueue في مستيقظا لم يتم استدعاؤه. لذلك أنا Alloc Networkquue في الزر "انقر فوق" طريقة ". التي إصلاح المشكلة.

نصائح أخرى

حاول الإعداد requestDidFailSelector على مثيل الخاص بك من ASINetworkQueue, ، وكذلك الإعداد didFinishSelector و didFailSelector على كل حالة من ASIHTTPRequest. وبعد اتصل على NSLOG () من كل من طرق الاتصال في مندوبك لمعرفة ما يحدث.

لاحظ أنه عن طريق التمكين showAccurateProgress على حسابك ASINetworkQueue, ، يتم تقديم طلب رأس إضافي لكل طلب أن عمليات الانتظار. هذا يمكن أن يكون في بعض الأحيان أقل من المثالي في سياق المحمول.

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