2015-07-14 2 views
-1

Я не уверен, почему я получаю это предупреждение и надеюсь, что кто-то сможет объяснить, где я ошибаюсь.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, я все равно бросаю предупреждение.

ответ

3

Где определяется self.myCalType? я просто скопировал свой код и повторно-RAN - никаких предупреждений здесь, так что я предполагаю, что вы, возможно, сделал что-то вроде:

@property NSInteger *myCalType; вместо

@property NSInteger myCalType;

+0

Dang это, что это было. myCalType является свойством контроллера представления. Хорошо поймал. Я был настолько сфокусирован на неправильном TypeDef, что не смотрел на значение свойства. : D Вознаграждения идут, как только SO дайте мне. – PruitIgoe

+0

Хотя я думаю об этом, почему бы не предупредить при первой проверке? – PruitIgoe

+0

У меня нет ответа там, но если бы я должен был догадаться - возможно, 1-й элемент перечисления перечисления - это не только элемент (константа), но также и глава объекта перечисления, поэтому компилятор пропускает это когда вы сравниваете указатель на первый элемент в перечислении, но не на последующие. – Andrew

Смежные вопросы