إرسال العديد من الطلبات غير المتزامنة يعطي خطأ

StackOverflow https://stackoverflow.com//questions/9655745

  •  11-12-2019
  •  | 
  •  

سؤال

أنا أفعل نوعا من العثور على جهازي باستخدام هذا الرمز:

NSOperationQueue* quququ;

int i=0;
for (i=0; i<256; i++) {
    //NSLog(@"%i",i);

    NSString *url=[NSString stringWithFormat:@"http://%i.%i.%i.%i/",myip1,myip2,myip3,i];
    //NSLog(@"urlGET = %@", url);

    NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:1];

    [NSURLConnection sendAsynchronousRequest:request queue:quququ completionHandler:^(NSURLResponse *respons, NSData *data, NSError *error) { 

    //do smth
    NSLog(@"data: %ld bytes. res: %@, error: %@", (long)[data length], respons, error);

}];

ماذا أفعل خطأ?أتلقى خطأ "الوصول السيئ".

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

المحلول

في السطر الأول من التعليمات البرمجية الخاصة بك ، كنت مجرد إعلان مرجع نسوبيراتيونكيو ، ولكن لم إنشاء كائن نسوبيراتيونكيو ، وهذا هو السبب الجذري للخطأ "إكسباد_أكسس".يجب عليك تعيين queue مع كائن نسوبيراتيونكيو ومن ثم استخدامه.

قم بتغيير السطر الأول من التعليمات البرمجية الخاصة بك إلى

NSOperationQueue* quququ = [[[NSOperationQueue alloc] init] autorelease];

هذا سوف يحل مشكلتك.

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