IndexPath没有为iOS显示正确的数字?

时间:2014-05-03 10:46:48

标签: ios iphone objective-c

我正试图抓住点击索引值的行。

我将它推入下一个控制器,如此

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{

    nextView.count = [counts objectAtIndex:indexPath.row];

计数显示一个正确的4个整数值的数组,行显示正确的位置,但由于某种原因,nextView.count变成了一些奇怪的8位数,不知道为什么?

我在nextViewController中调用count,如下所示:

@interface nextViewController : UIViewController {

    int count;
}

@property (nonatomic, assign) int count;

所以即计数看起来像[3,6,2,5],取决于该行可以看起来像0,1,2或3的索引,但接着是nextView.count = 3943493的结果

1 个答案:

答案 0 :(得分:4)

目标-C集合(例如NSArray)只能存储Objective-C 对象。 所以

 [counts objectAtIndex:indexPath.row]

返回一个对象,可能是NSNumber,但nextView.count是一个(标量)整数。 你必须使用

 nextView.count = [[counts objectAtIndex:indexPath.row] intValue];

(在您的情况下会发生的情况是,对象的地址被分配给整数。)