0

まず、Objective Cを初めて使用することから始めたいと思います。これは、ObjectiveCで開発するのは初めてです。なんらかの理由で、 (オブジェクトが含まれている)NSArrayスルーからオブジェクトを削除する方法に行き詰まりましmy tableviewた。いくつかの異なることを試しましたが、私は少し立ち往生しているようです...以下のコードで何をpuしますか?

bookmarks.m

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]withRowAnimation:YES]; 
    [tableView reloadData];    
}

Bookmarks.h

#import <UIKit/UIKit.h>

#import "ShowTaskViewController.h"

#import "Bookmark.h"

@interface BookmarksViewController : UITableViewController  <UITableViewDelegate,UITableViewDataSource>
{
    NSArray *bookmarks;
}

@property (nonatomic, retain) NSArray *bookmarks;

@end
4

1 に答える 1

1

tableViewはコンテンツを管理しません。あなたはそれを自分でしなければなりません。ユーザーが行で[削除]をタップすると、そのアイテムを配列から削除し、テーブルビューに通知してセルを削除する必要があります(アニメーションを使用)。

データ配列をNSMutableArrayに変更することをお勧めします。次に、これを行うことができます:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{

    [bookmarks removeObjectAtIndex:indexPath.row];
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] 
                     withRowAnimation:YES]; 
}

または、一時的にNSMutableArrayを作成することもできます。

NSMutableArray *mutableBookmarks = [NSMutableArray arrayWithArray:bookmarks];
[mutableBookmarks removeObjectAtIndex:indexPath.row];
self.bookmarks = [NSArray arrayWithArray:mutableBookmarks];
于 2012-08-25T12:45:09.997 に答える