隐式转换失去整数精度:警告,64位平台的代码

时间:2014-04-01 08:28:13

标签: ios objective-c int nsinteger

在更改(偶然)模拟器(从32位到64位平台)时收到很多警告后,我删除了所有int声明并更改NSinteger的声明}第

但是我在这段代码中还有另一个警告:

- (IBAction)nextText:(UIBarButtonItem *)sender {

    NSInteger i=[self.indexPathArray indexOfObject:[self indexPathForActiveText]];
    //before it was int i=... 

    if (i<[self.indexPathArray count]-1) {

        [self moveRows:++i];
    }
}

但是在[self moveRows:++i];行上我再次收到此警告:

  

&#39;隐式转换失去整数精度:...&#39;

1 个答案:

答案 0 :(得分:3)

它应该在64位平台上显示警告。 NSInteger i=[self.indexPathArray indexOfObject:[self indexPathForActiveText]];由于indexOfObject:返回NSUInteger.所以您的代码应如下所示

NSUInteger i=[self.indexPathArray indexOfObject:[self indexPathForActiveText]];

-(void)moveRows:(NSUInteger)index;

See this apple's doc