Ожидаемый идентификатор Objective C - простая проблема отладки синтаксиса - PullRequest
2 голосов
/ 05 мая 2011

Мне нужна помощь в отладке этой ошибки Expected Identifier. Код -

+(NSString *)dayOfWeek {
    NSDate *day = [NSDate date];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:day];
    day = [calendar dateFromComponents:components];
    NSLog(@"The DAY OF THE WEEK is -- %@", day);
    NSArray *daysOfTheWeek = [NSArray arrayWithObjects:@"Sunday", @"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday", nil];

    NSString *dayName = [[[NSString alloc] initWithFormat:[daysOfTheWeek objectAtIndex:[[components weekday]-1]]]];
    return dayName;
}

Я получаю маркер ошибки на -1] под ].

Ответы [ 4 ]

5 голосов
/ 05 мая 2011

Мне кажется эта строка:

NSString *dayName = [[[NSString alloc] initWithFormat:[daysOfTheWeek objectAtIndex:[[components weekday]-1]]]];

должно выглядеть так:

NSString *dayName = [[NSString alloc] initWithString:[daysOfTheWeek objectAtIndex:[components weekday]-1]];

Я изменил initWithFormat из-за предупреждения компилятора. Вы ничего не подставляете, поэтому для начала должно хватить initWithString.

1 голос
/ 05 мая 2011

вместо

NSString *dayName = [[[NSString alloc] initWithFormat:[daysOfTheWeek objectAtIndex:[[components weekday]-1]]]];

Используйте

NSString *dayName = [daysOfTheWeek objectAtIndex:[components weekday]-1];
1 голос
/ 05 мая 2011
NSString *dayName = [[NSString alloc] initWithFormat:[daysOfTheWeek objectAtIndex:[components weekday]-1]];

РЕДАКТИРОВАТЬ: Точно так же, как Ник Уивер указал, что вы, вероятно, должны использовать initWithString::

NSString *dayName = [[NSString alloc] initWithString:[daysOfTheWeek objectAtIndex:[components weekday]-1]];

РЕДАКТИРОВАТЬ 2: Не знаю, почему вынужно создать новую строку.Не достаточно ли следующего?

NSString *dayName = [daysOfTheWeek objectAtIndex:[components weekday]-1];

Примечание: Я думаю, что реальная проблема заключается в том, что вы действительно не знаете, для чего используются скобки.

0 голосов
/ 05 мая 2011
+(NSString *)dayOfWeek {
    NSDate *day = [NSDate date];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:day];
    day = [calendar dateFromComponents:components];
    NSLog(@"The DAY OF THE WEEK is -- %@", day);
    NSArray *daysOfTheWeek = [NSArray arrayWithObjects:@"Sunday", @"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday", nil];
    NSString *dayName = [[NSString alloc] initWithFormat:[daysOfTheWeek objectAtIndex:[components weekday] - 1 ]];
    return dayName;
}

будет работать:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...