类型或属性(NSUInteger(aka unsigned int))与ivar(int)的类型不匹配

时间:2012-08-23 18:57:48

标签: objective-c nsuinteger

我想在我的ViewController中声明一个NSInteger变量,但是我收到错误。

在我的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'sturrentSection'('int')的类型不匹配

为什么我用一条简单的指令得到这个错误? 我正在使用带有ARC的Xcode 4.4。

1 个答案:

答案 0 :(得分:1)

您要求编译器使用NSUInteger ivar合成NSInteger属性。您必须决定属性的类型,并相应地调整ivar的类型。

请注意,无符号整数不等于(隐式签名)整数。将一个投射到另一个可能会给你意想不到的结果。