Я не уверен, почему я получаю это предупреждение и надеюсь, что кто-то сможет объяснить, где я ошибаюсь.iOS: Сравнение между указателем и целым числом
В моем файле .h я объявляю перечисление:
typedef NS_ENUM(NSInteger, CalType) {
DAY_CAL,
WEEK_CAL,
MONTH_CAL,
};
В моем файле .m у меня есть этот код:
if (self.myCalType == DAY_CAL || myButton.tag == 0) {
[self.myDay setFrame:CGRectMake(0.0, self.calendarY, self.view.frame.size.width, self.view.frame.size.height)];
self.myDay.currentDay = self.currentDayNumber;
self.myDay.strDayName = self.strDayName;
self.myDay.strCurrentMonth = self.strCurrentMonth;
self.myDay.strCurrentYear = self.strCurrentYear;
[self.myDay buildDay];
[self.view addSubview:self.myDay];
[self.arrMyObjs addObject:self.myDay];
self.myCalType = DAY_CAL;
} else if (self.myCalType == MONTH_CAL || myButton.tag == 1) {
}
Первое условное не бросает pointer-> целого предупреждения но второй делает. Любая идея, что я делаю неправильно здесь?
Следует добавить, если я изменю typedef на int, а не на NSInteger, я все равно бросаю предупреждение.
Dang это, что это было. myCalType является свойством контроллера представления. Хорошо поймал. Я был настолько сфокусирован на неправильном TypeDef, что не смотрел на значение свойства. : D Вознаграждения идут, как только SO дайте мне. – PruitIgoe
Хотя я думаю об этом, почему бы не предупредить при первой проверке? – PruitIgoe
У меня нет ответа там, но если бы я должен был догадаться - возможно, 1-й элемент перечисления перечисления - это не только элемент (константа), но также и глава объекта перечисления, поэтому компилятор пропускает это когда вы сравниваете указатель на первый элемент в перечислении, но не на последующие. – Andrew