Тип или свойство (NSUInteger (иначе unsigned int)) не соответствует типу ivar (int)

Я хочу объявить NSInteger переменная в моем ViewController, но я получаю ошибку.

В моем ViewController.h у меня есть

@interface MainViewController : UIViewController{
    NSInteger currentSection;
    //Other stuff  
  }

  @property (assign,nonatomic) NSUInteger currentSection;
@end

и в моем ViewController.m у меня есть:

@implementation MainViewController

//Other stuff
@synthesize currentSection;

Но я получаю эту ошибку:

Тип свойства currentSection (NSUinteger (иначе unsigned int)) не соответствует типу ivar currentSection (int)

Почему я получаю эту ошибку с помощью одной простой инструкции?
Я использую Xcode 4.4 с ARC.

1 ответ

Решение

Вы просите компилятор синтезировать NSUInteger недвижимость с NSInteger Ивар. Вы должны решить, какой тип свойства должен быть, и соответственно адаптировать тип ивара.

Обратите внимание, что целое число без знака не эквивалентно (неявно подписанному) целому числу. Приведение одного к другому может дать вам неожиданные результаты.

Другие вопросы по тегам