Я пытаюсь установить текст UILabel равным имени дня недели, представленного в NSDateComponents. Я использую следующий код:
NSDateComponents *dateComponents = [[[NSDateComponents alloc] init] autorelease];
dateComponents.weekday = 1; //Sunday
NSString * const weekdayNames[8] = {@"Array starts at 1", @"Sunday", @"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday"};
UILabel *myLabel = [[[UILabel alloc] init] autorelease];
myLabel.text = weekdayNames[dateComponents.weekday]; //compiler error: Assignment of read-only variable 'prop.49'
Я могу заставить код работать любым из трех способов:
- Сделайте так, чтобы имена дней недели не были константами
- Назначьте dateComponents.weekday промежуточной переменной типа int, прежде чем использовать ее в качестве индекса массива
- Назначьте день недели [dateComponents.weekday] промежуточной переменной NSString * перед вызовом setText:
Но я хочу знать, почему мой исходный код не работает.