मैंने सुना है कि मुझे चक्र बनाए रखने से बचने के लिए हमेशा ब्लॉक में weakSelf
का उपयोग करना चाहिए, लेकिन प्रेषण ब्लॉक के बारे में क्या? इस मामले में, मेरी विधि निम्नलिखित कोड में अपने सर्वर से एक त्रुटि प्रतिक्रिया संभालता है:क्या मुझे एक प्रेषण ब्लॉक में "कमजोर" का उपयोग करना चाहिए?
//handling server errors (particularly "Token Refresh Failed" ones)
-(void)handleServerErrorResponse:(NSString *)error {
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertController *alertController = [DialogHelper getAlertForSimpleAuthError:error];
if ([error isEqualToString:@"Your login session has expired"]) {
[alertController addAction:[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)
{
[MyModelDataCenter emptyDataCenter];
[MyAPIInterface sharedInstance].authToken = nil;
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@"authToken"];
[defaults removeObjectForKey:@"defaultUserObjectDictionary"];
[defaults synchronize];
[AuthenticationHelper sharedInstance].loggedInUser = nil;
[self.navigationController popToRootViewControllerAnimated:YES];
}]];
}
else {
[alertController addAction:[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:nil]];
}
[self presentViewController:alertController animated:YES completion:nil];
});
}
मैं एक ही मैं अन्य ब्लॉकों में कर के रूप में इस ब्लॉक में weakSelf
प्रयोग करना चाहिए?
क्या आप इसे बनाए रखने के लिए एक उदाहरण दे सकते हैं? – sbarow
यहां कुछ उदाहरण दिए गए हैं, हालांकि कुछ मध्यवर्ती चरणों के साथ: http://stackoverflow.com/q/11822476/603977 –
इतना अच्छा समझाए जाने के लिए धन्यवाद! और उदाहरण के लिए धन्यवाद! :) – Rafi