我得到了以下plist:
这个 plist 存储了一个数组,该数组将加载到 UITableview 中,如您在右侧所见。
我使用以下代码检索此内容:
NSString *path = [[NSBundle mainBundle] pathForResource:@"array" ofType:@"plist"];
vakken = [[NSDictionary alloc] initWithContentsOfFile:path];
naamvakken = [vakken objectForKey:@"Vakken"];
self.array = [naamvakken mutableCopy];
现在我将这个 UIAlertview 与这个 Textfield 内置功能一起使用,让用户创建一个新行:
http://f.cl.ly/items/030Z373X2p1c3m0O0u2K/Schermafbeelding%202013-01-21%20om%2019.48.06.png 使用此代码:
NSString *path = [[NSBundle mainBundle] pathForResource:@"array" ofType:@"plist"];
NSString *list = [[alertView textFieldAtIndex:0]text];
naamvakken = [vakken objectForKey:@"Vakken"];
[array addObject:list];
[array writeToFile:path atomically:YES];
[self.tableView reloadData];
但是出于某种原因,上面的代码将文本存储在 TableView 中,而不是 plist 中。我的代码有问题吗?[array writeToFile:path atomically:YES];
应该做的伎俩?
另一个问题是如果用户在 tableviewcell 上向右滑动,如何从 plist 中删除字符串。
我的.h
@interface ViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate> {
IBOutlet UIView *root;
}
@property (nonatomic, retain) NSMutableArray *array;
@property (nonatomic, retain) NSDictionary *vakken;
@property (nonatomic, retain) NSMutableArray *naamvakken;
@property (strong, nonatomic) NSIndexPath *indexPathToBeDeleted;
@end
对于: H2CO3:
-(NSString *)docsDir {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
}
并在 viewdidload 中:
listPath = [[self docsDir]stringByAppendingPathComponent:@"array.plist"];
谢谢!