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

标签 ios objective-c uitableview

当有人点击表格 View 单元格时,我想将他们正在点击的内容的 indexPath.row 保存为一个整数,以便我可以使用该数字在另一种方法中执行操作。我该如何保存它?当我执行以下操作时,我收到警告:

.h

@property NSInteger *songIndex;

.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    self.songIndex = indexPath.row;
    // Warning: Incompatible integer to pointer conversion assigning to 'NSInteger *' (aka 'long *') from 'NSInteger' (aka 'long')
}
- (void)otherMethod {
    PFUser *user = [PFUser currentUser];
    [user setObject:[song objectAtIndex:self.songIndex] forKey:@"song"];
    // Warning: Incompatible pointer to integer conversion sending 'NSInteger *' (aka 'long *') to parameter of type 'NSUInteger' (aka 'unsigned long')
}

最佳答案

NSInteger 不是一个类,因此您不能将对象创建为指针,因此只需从您的声明中删除 *。

并且您将其定义为属性,因此访问说明符应该是 (nonatomic,assign)

@property (nonatomic,strong) NSNumber *songIndex;

希望这能解决您的问题。

更新:

尝试使用 NSNumber 类

[NSNumber numberWithInteger:indexPath.row];

关于ios - 如何将 indexPath.row 保存为全局整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997420/

相关文章:

html - 更改 ios 上多选输入的默认文本

objective-c - iOS:属性——分配和释放对象

ios - objective c UITableView 无法使用自定义单元格和 View 平滑滚动

ios - UITableView 仅向下滚动

iphone - 如何将复选框添加到 UITableViewCell?

ios - 在Testflight上发布两个不同的版本

iOS 应用被拒绝为 "Spam"

arrays - 同时过滤具有2个条件的数组?

ios - 如何设置 NSURLRequest 缓存过期?

ios - 无法保存与扩展程序共享的网址