mam ten kod:Czy lista weekdaySymbol zawsze zaczyna się od niedzieli w jakimkolwiek kraju?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSMutableArray *daysNames = [NSMutableArray arrayWithArray:dateFormatter.weekdaySymbols];
NSLog(@"daysNames = %@", daysNames);
wyprowadza:
daysNames = (
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
)
Moje pytanie brzmi:
Jeżeli użytkownik znajduje się w innym kraju niż USA, powiedzmy, Francję lub Rosję, będzie tablica nadal zaczyna się w niedzielę (nie w poniedziałek), czy nie powinienem polegać na tym?
Chodzi o to, że ustawiłem dni alarmowe. Wizualnie użytkownik wybiera widok tabeli, który zawsze ma poniedziałek w pierwszym wierszu. I utrzymuję 0 lub 1 w NSMutableArray na podstawie faktu, czy dzień jest ustawiony, czy nie. Jeśli daysNames [0] zawsze odpowiada niedzieli, mogę łatwo przesuwać wszystkie elementy o jedną pozycję w prawo, a wszystko będzie poprawnie mapowane, w przeciwnym razie będę mieć więcej problemów związanych z jednym kolejnym przypadkiem, gdy tydzień zaczyna się od poniedziałku, a nie w niedzielę.
Jest to pełny kod pisałem o tym (w Stanach Zjednoczonych działa idealnie):
// Set the short days names
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSMutableArray *daysNames = [NSMutableArray arrayWithArray:dateFormatter.weekdaySymbols];
NSLog(@"daysNames = %@", daysNames);
// daysNames will become @"SUN MON TUE WED THU FRI SAT";
for (NSInteger i = 0; i < daysNames.count; i++) {
NSUInteger length = ((NSString *)daysNames[i]).length;
if (length > 3) {
length = 3;
}
daysNames[i] = [daysNames[i] substringToIndex:length].uppercaseString;
}
NSString *sundayShortName = daysNames[0];
// daysNames will become @"MON TUE WED THU FRI SAT SUN";
for (NSInteger i = 1; i < daysNames.count; i++) {
daysNames[i - 1] = daysNames[i];
}
daysNames[daysNames.count - 1] = sundayShortName;
NSMutableArray *alarmDaysShortNames = [NSMutableArray array];
for (NSInteger i = 0; i < alarm.alarmDays.count; i++) {
if ([alarm.alarmDays[i] boolValue] == YES) {
[alarmDaysShortNames addObject:daysNames[i]];
}
}
alarmCell.alarmDaysLabel.text = [alarmDaysShortNames componentsJoinedByString:@" "];
Nie, we Francji zaczynałoby się od Dimanche. Poza tym Chińczycy mają sześć lub siedem różnych słów na niedzielę, więc nie jestem pewien, czy prosta tablica go przerwie :-) – paxdiablo
Dziękuję! Właściwie nie miałem na myśli innej nazwy dnia. Wiem, że to będzie ustawione na podstawie języka. Zastanawiam się, czy daysNames [0] nadal będzie w niedzielę (lub Dimanche itp.), Ale nie w poniedziałek (lub Lunedi itp.). – ppalancica
Przepraszam, źle zrozumiałem pytanie. – paxdiablo