问题
Basically I am storing an index of an array in a NSInteger. I now need it as an NSIndexpath, I'm struggling to see and find a way to convert my NSInteger to NSIndexpath so I can reuse it.
回答1:
For an int index
:
NSIndexPath *path = [NSIndexPath indexPathWithIndex:index];
Creates Index of the item in node 0 to point to as per the reference.
To use the indexPath in a UITableView
, the more appropriate method is
NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:section];
回答2:
If you need a NSIndexPath
for a UITableView
, you can use indexPathForRow:inSection:
(reference). Index paths passed to table view must contain exactly two indices specifying the section and row. An index path created with indexPathWithIndex:
only contains one index and won't work with a table view.
回答3:
Use below methods of NSIndexPath class.
+ (id)indexPathWithIndex:(NSUInteger)index;
+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length;
- (id)initWithIndex:(NSUInteger)index
Use as below and also Don't forget to release
myIndexPath
object after using.
NSIndexPath *myIndexPath = [[NSIndexPath alloc] initWithIndex:[myIntObj intValue]];
回答4:
Swift 3:
let indexPath = IndexPath(row: 0, section: 0)
来源:https://stackoverflow.com/questions/6454723/convert-nsinteger-to-nsindexpath