मैं वर्तमान में जीसीडी का उपयोग कर रहा हूं। हालांकि, मैंने सुना है कि NSOperation
वास्तव में एक उच्च स्तर का कार्यक्रम है। हालांकि यह कहीं अधिक जटिल है।किसके लिए उपयोग करना आसान है? जीसीडी या एनएसओपरेशन?
+(void)doForeGround:(void (^)())block
{
dispatch_async(dispatch_get_main_queue(), ^{
block();
});
}
+(void)doBackground:(void (^)())block
{
//DISPATCH_QUEUE_PRIORITY_HIGH
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0), ^{
//dispatch_async(dispatch_get_global_queue(-2,0), ^{
block();
});
}
-(void)doBackGround:(void (^)())block onComletion:(void (^)())onCompletion
{
[BGHPTools doBackground:^{
block();
[BGHPTools doForeGround:^{
onCompletion();
}];
}];
}
विल NSOperation
साथ यह कर आसान हो:
GCD में, यह सहायक समारोह मैं बनाया का उपयोग कर रहा है पृष्ठभूमि में कुछ करने के लिए बस?
क्या मुझे कुछ याद आ रही है? एनएस ऑपरेशन में मैं वही काम कैसे करूं?
और मुझे लगता है कि NSOperation भी अपने स्वयं के नेस्टेड ऑटोरेलीज़ स्टैक बनाते हैं? –
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperationQueue_class/Reference/Reference.html नए नामक विधि का वर्णन नहीं करता है। आह यह आवंटन के लिए शॉर्टकट होना चाहिए] init] –
'+ new' को' NSObject' से विरासत में मिला है, बस आवंटन और init की तरह। और हाँ, प्रत्येक ऑपरेशन का ब्लॉक एक ऑटोरेलीज पूल में रहेंगे। –