5

に変換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

4 に答える 4

5

ある時点で、これを NSIndexPath のカテゴリにしました。

@interface NSIndexPath (StringForCollection)

-(NSString *)stringForCollection;

@end

@implementation NSIndexPath (StringForCollection)

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

@end
于 2011-05-12T09:26:49.750 に答える
1

NSIndexPath を文字列に変換することはできません。NSIndexPath は事実上、単なる整数の配列です。「変換」とは、特定のパスに関連付けられたデータにアクセスすることを意味すると仮定すると、そのデータのソースに戻る必要があります。

オブジェクトの配列からテーブルを生成した場合 (これはよくあることです)、indexPath の最初の要素に等しい配列インデックスでオブジェクトを調べるだけです。テーブルがセクション化されている場合は、セクションを作成するためにデータがどのようにアクセスされたかを調べる必要があります。これは、オブジェクト プロパティに基づくオブジェクトの並べ替えに関連している可能性があります。

変換はありません。テーブルの生成時にアクセスしたのと同じ方法でデータ ソースを参照するだけです。

于 2011-05-12T09:20:46.793 に答える