我想将NSIndexPath
转换为NSString
。我该怎么办?
我必须用这个:
- (void)restClient:(DBRestClient*)client uploadedFile:(NSString*)sourcePath
{
[client deletePath:@"/objc/boston_copy.jpg"];
}
在commitEditingStyle方法中,我只获得NSIndexPath
作为输入。
- (void)tableView:(UITableView *)aTableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath :(NSIndexPath *)indexPath
{
[self.itemArray removeObjectAtIndex:indexPath.row];
[aTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:YES];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0]
withRowAnimation:UITableViewRowAnimationFade];
}
答案 0 :(得分:5)
我在一个时间点将其作为NSIndexPath的类别:
@interface NSIndexPath (StringForCollection)
-(NSString *)stringForCollection;
@end
@implementation NSIndexPath (StringForCollection)
-(NSString *)stringForCollection
{
return [NSString stringWithFormat:@"%d-%d",self.section,self.row];
}
@end
答案 1 :(得分:3)
我做了这个扩展来帮助调试:
@interface NSIndexPath (DBExtensions)
- (NSString *)indexPathString;
@end
@implementation NSIndexPath (DBExtensions)
- (NSString *)indexPathString;
{
NSMutableString *indexString = [NSMutableString stringWithFormat:@"%lu",[self indexAtPosition:0]];
for (int i = 1; i < [self length]; i++){
[indexString appendString:[NSString stringWithFormat:@".%lu", [self indexAtPosition:i]]];
}
return indexString;
}
@end
答案 2 :(得分:1)
您无法将NSIndexPath转换为字符串 - NSIndexPath实际上只是一个整数数组。假设通过“转换”表示您想要访问与特定路径关联的数据,您必须返回到该数据的来源。
如果从对象数组生成表(通常是这种情况),那么您只需查看数组索引处的对象,该索引等于indexPath的第一个元素。如果表是分段的,那么你需要查看如何访问数据以创建部分 - 它可能与基于某些对象属性的对象排序有关。
没有转换,只是在生成表时以与访问数据源相同的方式查看数据源。
答案 3 :(得分:0)
extension NSIndexPath {
var prettyString: String {
var strings = [String]()
for position in 0..<length {
strings.append(String(indexAtPosition(position)))
}
return strings.joinWithSeparator("_")
}
}