मैं बनाने का प्रयास किया - [NSString stringWithContentsOfURL: एन्कोडिंग: त्रुटि:] अतुल्यकालिक, यह एक पृष्ठभूमि धागे से एक-synchronically चलाकर: अपनी अतुल्यकालिकस्ट्रिंग WithContentsOfURL एसिंक्रोनस बनाना - क्या यह सुरक्षित है?
__block NSString *result;
dispatch_queue_t currentQueue = dispatch_get_current_queue();
void (^doneBlock)(void) = ^{
printf("done! %s",[result UTF8String]);
};
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
result = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com/"] encoding:NSUTF8StringEncoding error:nil];
dispatch_sync(currentQueue, ^{
doneBlock();
});
});
इसके ठीक काम कर रहा है, और सबसे महत्वपूर्ण बात,।
मेरा सवाल यह है कि यह करना सुरक्षित है, या कोई थ्रेडिंग समस्या आदि हो सकती है?
अग्रिम :)
चीयर्स! मुझे नहीं पता था कि यह संभव था: पी – JonasG
सबसे पहले मैं यह कहता हूं कि यह '[NSOperationQueue mainQueue]' की वजह से मुख्य कतार पर काम करेगा, लेकिन मैंने 'sendAsynchronousRequest' को देखा है। तो यह यूआई को अपडेट करने से नहीं रोकना चाहिए। –