Принятый ответ на самом деле неверен. Вот правильный код:
NSCalendar *calendar = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
self.weekStartsOnDay = [calendar firstWeekday];
Проблема в том, что объект, на который ссылается NSLocaleCalendar, фактически является календарем.