Ios 如何将indexPath.row保存为全局整数?
当有人点击一个表视图单元格时,我想将他们点击的内容的indexath.row保存为一个整数,这样我就可以用这个数字在另一个方法中进行操作。我如何保存它?当我执行以下操作时,会收到警告: h mIos 如何将indexPath.row保存为全局整数?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,当有人点击一个表视图单元格时,我想将他们点击的内容的indexath.row保存为一个整数,这样我就可以用这个数字在另一个方法中进行操作。我如何保存它?当我执行以下操作时,会收到警告: h m 删除歌曲索引前的*before。 您还应该像这样设置属性: @property (nonatomic) NSInteger songIndex; NSInteger是一种基本类型,它返回其变量,不需要指针 但是,如果可以使用指向基本类型(如布尔、浮点、整数等)的指针 NSInteger *songInd
删除歌曲索引前的*before。 您还应该像这样设置属性:
@property (nonatomic) NSInteger songIndex;
NSInteger是一种基本类型,它返回其变量,不需要指针
但是,如果可以使用指向基本类型(如布尔、浮点、整数等)的指针
NSInteger *songIndex;
[user setObject:[song objectAtIndex:&songIndex] forKey:@"song"];
NSInteger不是一个类,所以不能创建对象作为指针,所以只需从声明中删除*即可 您将其定义为属性,因此访问说明符应该是(非原子,赋值) 希望这能解决你的问题 更新: 尝试使用NSNumber类
[NSNumber numberWithInteger:indexPath.row];
In.h
@房地产指数
英寸
或
In.h
英寸
显示警告。您不需要全局变量。您需要一个实例变量或属性。这使songIndex始终为0。您何时何地调用otherMethod?我展示给你的应该是有效的。在didSelectRow中设置songIndex属性后,您应该记录它,如果它在那里工作,然后它就在其他地方丢失了。愚蠢的问题,但你是不是在测试这一点,点击第一行以外的行?这使得songIndex也总是=0。请在didselectrow方法中赋值后调试并检查songIndex中的值是否更新了?哦,现在不行。但它崩溃并出现此错误:由于未捕获的异常“NSRangeException”而终止应用程序,原因:“***-[\uu NSArrayM objectAtIndex:]:索引1超出空数组的界限”
NSInteger *songIndex;
[user setObject:[song objectAtIndex:&songIndex] forKey:@"song"];
@property (nonatomic,strong) NSNumber *songIndex;
[NSNumber numberWithInteger:indexPath.row];
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.songIndex =(int) indexPath.row;
}
- (void)otherMethod {
PFUser *user = [PFUser currentUser];
[user setObject:[song objectAtIndex:self.songIndex] forKey:@"song"];
}
@property NSIndexPath (nonatomic,strong) songIndex;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.songIndex = indexPath;
}
- (void)otherMethod {
PFUser *user = [PFUser currentUser];
[user setObject:[song objectAtIndex:self.songIndex.row] forKey:@"song"];
}