次の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];
トリックを行う必要がありますか?
別の質問は、ユーザーがテーブルビューセルを右にスワイプした場合に、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];
}
およびビューでdidload:
listPath = [[self docsDir]stringByAppendingPathComponent:@"array.plist"];
ありがとう!