这些代码行就是问题所在:

case CostPeriodMonthly:
            NSRange days = [gregorian rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]];

            [endDateComponents setDay:days.length];
            [endDateComponents setMonth:[todayComponents month]];
            [endDateComponents setYear:[todayComponents year]];
            break;


使用天的第一行突出显示为“使用未声明的标识符天”,但是为什么呢?我在这里想念什么?

最佳答案

如果要在case语句中声明新变量,则必须将这些语句括在{}块中:

case CostPeriodMonthly: {
            NSRange days = [gregorian rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]];

            [endDateComponents setDay:days.length];
            [endDateComponents setMonth:[todayComponents month]];
            [endDateComponents setYear:[todayComponents year]];
            break;
}

关于ios - iOS:为什么NSRange总是抛出错误“使用未声明的标识符”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21810813/

10-13 04:56