2017-04-27 4 views
0

Y a-t-il une possibilité de mettre en place firstWeekday? Devrais-je sous-classer NSCalendar?NSCalendar - définissez votre propre firstWeekday globalement

Pour l'instant je dois le mettre comme ça dans tous les endroits où je dois utiliser NSCalendar

NSCalendar* calendar = [NSCalendar currentCalendar]; 
calendar.firstWeekday = [NSUserDefaultsHelper firstDayOfWeek]; 

Répondre

1

Vous pouvez écrire une catégorie de NSCalendar avec une variable instanciée paresseuse:

@interface NSCalendar (WeekdayCalendar) 

+ (NSCalendar *)customWeekdayCalendar; 

@end 

@implementation NSCalendar (WeekdayCalendar) 

+ (NSCalendar *)customWeekdayCalendar 
{ 
    static NSCalendar *customCalendar = nil; 
    if (customCalendar == nil) { 
     customCalendar = [self currentCalendar]; 
     customCalendar.firstWeekday = [NSUserDefaultsHelper firstDayOfWeek]; 
    } 
    return customCalendar; 
} 

@end 

Ensuite, vous pouvez utiliser le calendrier de partout

NSCalendar *myCalendar = [NSCalendar customWeekdayCalendar];