Ios 你能把nsindepath向下转换到NSInterger吗

Ios 你能把nsindepath向下转换到NSInterger吗,ios,nsindexpath,nsinteger,downcast,Ios,Nsindexpath,Nsinteger,Downcast,我在细节视图中使用了一个AVPlayer类,它采用Int类型的indepath 我从表视图TableViewDidSelectatinIndexPath中获取indexPath,然后将其发送给详细信息VC使用 我试着简单地贬低NSIndeas!NSInteger在发送给详细VC使用之前,它会崩溃,但没有崩溃消息。所以我有点被困在如何处理这件事上 有可能对这件事感到沮丧吗?如何将NSIndexPath中的数字转换为整数,以便在类中使用它?NSIndexPath始终是*节和行(对于UITableVi

我在细节视图中使用了一个AVPlayer类,它采用Int类型的indepath

我从表视图TableViewDidSelectatinIndexPath中获取indexPath,然后将其发送给详细信息VC使用

我试着简单地贬低NSIndeas!NSInteger在发送给详细VC使用之前,它会崩溃,但没有崩溃消息。所以我有点被困在如何处理这件事上


有可能对这件事感到沮丧吗?如何将NSIndexPath中的数字转换为整数,以便在类中使用它?

NSIndexPath
始终是*节和行(对于
UITableView
)或项(对于
UICollectionView
)的组合

您需要通过访问单个索引来分解该节:

id object = [[self dataSource] objectAtIndex:[indexPath row]];
*编辑

评论:你是对的。使用
nsindepath
可以建立多个索引

如果您知道您有多个索引(这是我在
UITableViewDelegate
中没有想到的),您可以迭代索引:

for (int i = 0; i < [indexPath length]; i++) {
    NSUInteger index = [indexPath indexAtPosition:i];
    // use index to access whatever you want
}
for(int i=0;i<[indepath-length];i++){
NSUInteger索引=[IndexXPath indexAtPosition:i];
//使用索引访问您想要的任何内容
}
编辑


下次询问之前,请阅读文档和标题。小提示:cmd单击
nsindepath
将带您进入它的头文件,其中包含所有可能的信息。

目标C

NSInteger currentRow = indexPath.row; 
Swift

let currentRow = self.tableView.indexPathForSelectedRow().row

查看
nsindepath
的文档(基本文档和
UIKit
类别)。有适当的方法可以从
indexPath
获取行、节、项或其他索引。简单地强制转换是完全错误的。nsindepath*是指向对象的指针。将任何指向对象的指针(包括NSIndexPath*的指针)强制转换为Int,肯定不会给您带来任何有用的东西,甚至一点用处也没有。您还可以创建具有任意数量索引的
nsindepath
。我创建了一个树状视图,索引路径可以有任意数量的索引。FYI-编写第一行代码的另一种方法:
id object=self.dataSource[indexath.row]。正确。这是可选的
ObjC
语法。