Ios 如何将indexPath.row保存为全局整数?

Ios 如何将indexPath.row保存为全局整数?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,当有人点击一个表视图单元格时,我想将他们点击的内容的indexath.row保存为一个整数,这样我就可以用这个数字在另一个方法中进行操作。我如何保存它?当我执行以下操作时,会收到警告: h m 删除歌曲索引前的*before。 您还应该像这样设置属性: @property (nonatomic) NSInteger songIndex; NSInteger是一种基本类型,它返回其变量,不需要指针 但是,如果可以使用指向基本类型(如布尔、浮点、整数等)的指针 NSInteger *songInd

当有人点击一个表视图单元格时,我想将他们点击的内容的indexath.row保存为一个整数,这样我就可以用这个数字在另一个方法中进行操作。我如何保存它?当我执行以下操作时,会收到警告:

h

m


删除歌曲索引前的*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"]; 
 }