私は、ユーザーから定義されたデータでいっぱいのテーブルビューを持っています。アレイはnsuserdefaultsから収集され、テーブルビューコントローラに表示されます。私は削除機能を実装しようとしています。それは正常に見えるが、私はエラーを削除押すとテーブルビューのオブジェクトを削除する要素を削除します。
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object'
がFavourites.h
#import <UIKit/UIKit.h>
@interface FavoritesViewController: UITableViewController <UITableViewDelegate, UITableViewDataSource>
@property(nonatomic, strong) IBOutlet UITableView *tableView;
@property (nonatomic,strong) NSMutableArray *favoriteItems;
@end
ための私が持っているコード来て、私は
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
favoriteItems= [[NSUserDefaults standardUserDefaults] objectForKey:@"favoritesArray"];
[self.tableView reloadData];
}
を初期化する作品は、私のように感じます上記のコードは問題がどこにあるかです。 NSUserDefaults;私は期待NSArrayです。だから私はそれもまた変更することができますか?
だけの利益のためにdeleteメソッドのフォローアップセット
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
//remove the deleted object from your data source.
//If your data source is an NSMutableArray, do this
[self.favoriteItems removeObjectAtIndex:indexPath.row];
[[NSUserDefaults standardUserDefaults] setObject:favoriteItems forKey:@"favoritesArray"];
[self.tableView reloadData]; // tell table to refresh now
}
}
は本当に事前に助けを感謝しています。