मैं विशेष रूप से @ christo16 के लिए आलेख Convert NSData bytes to NSString? लेख के लिए आभारी हूं। मैं पहले PHP सर्वर से मूल्य प्राप्त करने के लिए ASIHttpRequest पर निर्भर था। अब कोड की इस पंक्ति का उपयोग करके:क्यों NSData डेटा WithContentsOfURL कभी-कभी नल मान लौटाता है?
NSString *pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://www.apple.com"]]
मैं अपनी इच्छित कार्यक्षमता प्राप्त कर सकता हूं।
लेकिन कभी-कभी उस पंक्ति का कारण पृष्ठ सामग्री न्यूल होने का कारण बनता है। मैं पहले से ही उस पंक्ति को बदलता हूं:
NSString *fullUrl = [NSString stringWithFormat:@"http://www.apple.com"];
NSURL *url = [[NSURL alloc] initWithString:fullUrl];
NSData *pageContents;
NSString *response = NULL;
while(response==NULL)
{
pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:fullUrl]];
response = [NSString stringWithUTF8String:[pageContents bytes]];
NSLog(@"content = %@", response);
}
क्या ऐसा करने का कोई बेहतर तरीका है? अब तक, मुझे कोई समस्या नहीं है। मैं सिर्फ आश्चर्य है कि एक ही परिणाम प्राप्त करने
धन्यवाद
उस एक-लाइनर का नकारात्मक पक्ष यह है कि यह संभवतः लंबे समय तक आपके यूआई को अवरुद्ध करता है। लूप भी बदतर है: यदि सर्वर कनेक्शन का जवाब नहीं दे रहा है, तो यह यूआई को प्रभावी रूप से हमेशा के लिए अवरुद्ध कर देगा (जब तक स्प्रिंगबार्ड तंग हो जाता है और आपकी प्रक्रिया को मार देता है)। –