2011-05-12 69 views
4

我想將NSIndexPath轉換爲NSString。我會怎麼做? 我要使用這樣的:如何將NSIndexPath轉換爲NSString-iOS

- (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

怎麼是你應該得到的是從一組數字?我們將需要更多的信息,否則這個問題將被關閉。 – ughoavgfhw 2011-05-12 04:30:22

+0

你爲什麼要在NSString中轉換它? – saadnib 2011-05-12 04:30:59

+0

deletePath採用的參數是NSString。我可以簡單地對它進行類型轉換嗎?是我有(NSIndex Path *)indexPath;我可以做(NSString *)indexPath並將其提供給deletePath。 – Namratha 2011-05-12 04:52:33

回答

1

您不能將NSIndexPath轉換爲字符串 - NSIndexPath實際上只是一個整數數組。假設通過「轉換」,你的意思是你想訪問與特定路徑相關的數據,你必須回到數據的來源。

如果您從一個對象數組中生成表(通常是這種情況),那麼您只需查看數組index處的對象,該索引等於indexPath的第一個元素。如果表格被分區,那麼您需要查看數據的訪問方式以創建區段 - 這可能與基於某些對象屬性對對象的排序有關。

沒有轉換,只是以生成表格時訪問的方式查看數據源。

5

我的時間做對NSIndexPath這個類別在一個點上:

@interface NSIndexPath (StringForCollection) 

-(NSString *)stringForCollection; 

@end 

@implementation NSIndexPath (StringForCollection) 

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

@end 
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 
0
extension NSIndexPath { 
    var prettyString: String { 
     var strings = [String]() 
     for position in 0..<length { 
      strings.append(String(indexAtPosition(position))) 
     } 
     return strings.joinWithSeparator("_") 
    } 
} 
相關問題