سؤال

أرغب في إظهار شريط تقدم يشير إلى مقدار الملف الذي تم تنزيله في تطبيق iPhone الخاص بي. أنا أعرف كيفية إعداد UiprogressView في IB وكل ذلك. لكنني أحتاج إلى بيانات مثل حجم الملف في بايت لتشغيله. كيف أذهب في دمج هذه الوظيفة مع رمز تنزيل البايت الخاص بي (كما هو موضح أدناه)؟

- (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data
// A delegate method called by the NSURLConnection as data arrives.  We just 
// write the data to the file.
{
#pragma unused(theConnection)
    NSInteger       dataLength;
    const uint8_t * dataBytes;
    NSInteger       bytesWritten;
    NSInteger       bytesWrittenSoFar;

    assert(theConnection == self.connection);

    dataLength = [data length];
    dataBytes  = [data bytes];

    bytesWrittenSoFar = 0;
    do {
        bytesWritten = [self.fileStream write:&dataBytes[bytesWrittenSoFar] maxLength:dataLength - bytesWrittenSoFar];
        assert(bytesWritten != 0);
        if (bytesWritten == -1) {
            [self _stopReceiveWithStatus:@"File write error"];
            break;
        } else {
            bytesWrittenSoFar += bytesWritten;

        }
    } while (bytesWrittenSoFar != dataLength);
}
هل كانت مفيدة؟

المحلول

يمكنك إظهار عرض عرض تقدم بايت بواسطة بايت إذا قمت بالتبديل لاستخدام مكتبة AsihttPrequest.

أنا حقا أوصي بك على الأقل التحقق من ذلك. يجعل هذه الأشياء بسيطة حقا على iPhone وأستعبها لجميع تطبيقاتي. ستعمل الاتصالات المتزامنة وغير المتزامنة، تتعامل مع ملفات تعريف الارتباط والمصادقة، وتجعل تأليف طلبات المشاركة بسيطة حقا. كما أن لديها قائمة انتظار شبكة مبنية.

http://allseeing-i.com/asihttprecest/

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