Как конвертировать NSIndexPath в NSString-iOS - PullRequest
4 голосов
/ 12 мая 2011

Я хочу конвертировать 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];   
}  

Ответы [ 4 ]

5 голосов
/ 12 мая 2011

Я сделал это категорией на NSIndexPath в определенный момент времени:

@interface NSIndexPath (StringForCollection)

-(NSString *)stringForCollection;

@end

@implementation NSIndexPath (StringForCollection)

-(NSString *)stringForCollection
{
    return [NSString stringWithFormat:@"%d-%d",self.section,self.row];
}

@end
3 голосов
/ 18 августа 2013

Я сделал это расширение, чтобы помочь с отладкой:

@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
1 голос
/ 12 мая 2011

Вы не можете преобразовать NSIndexPath в строку - NSIndexPath фактически является просто массивом целых чисел. Предполагая, что «преобразование» означает, что вы хотите получить доступ к данным, связанным с определенным путем, вы должны вернуться к источнику этих данных.

Если вы сгенерировали таблицу из массива объектов, как это обычно бывает, тогда вы просто посмотрите на объект по индексу массива, равному первому элементу indexPath. Если таблица секционирована, вам нужно посмотреть, как к данным обращались, чтобы создать секции - это, вероятно, относится к сортировке объектов на основе некоторого свойства объекта.

Там нет преобразования, просто смотреть на источник данных так же, как к нему обращались при генерации таблицы.

0 голосов
/ 26 мая 2016
extension NSIndexPath {
    var prettyString: String {
        var strings = [String]()
        for position in 0..<length {
            strings.append(String(indexAtPosition(position)))
        }
        return strings.joinWithSeparator("_")
    }
}
...