إرسال العديد من الطلبات غير المتزامنة يعطي خطأ
سؤال
أنا أفعل نوعا من العثور على جهازي باستخدام هذا الرمز:
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];
هذا سوف يحل مشكلتك.
لا تنتمي إلى StackOverflow