私は Objective-C プログラミングの初心者で、NSMutableArray で問題が発生しました ...
1回目はちゃんとデータが保存されているのですが、2回目もやり直したい場合は1回目は上書き保存されて新しく保存されます。
理解するための例:
最初の試行:
Tabobjets : (
{
Contact = 1;
DateARendre = 1;
DateJour = "2013-03-19 19:27:29 +0000";
Nom = 1;
Rendu = 0;
Titre = 1;
}
)
2回目の試行:
Tabobjets : (
{
Contact = 2;
DateARendre = 2;
DateJour = "2013-03-19 19:27:40 +0000";
Nom = 2;
Rendu = 0;
Titre = 2;
},
{
Contact = 2;
DateARendre = 2;
DateJour = "2013-03-19 19:27:40 +0000";
Nom = 2;
Rendu = 0;
Titre = 2;
}
)
これが私のコードです
@interface SecondViewController () {
NSMutableDictionary *tabObjet;
NSMutableArray *tabObjets;
NSString *appFile;
}
@end
@implementation SecondViewController
- (void)viewWillAppear:(BOOL)animated{
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// the path to write file
appFile = [documentsDirectory stringByAppendingPathComponent:@"Bigre.plist"];
if (tabObjets == nil) {
tabObjets = [[NSMutableArray alloc] initWithContentsOfFile:appFile];
}
if (tabObjet == nil) {
tabObjet = [[NSMutableDictionary alloc] init];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)saisieReturn :(id)sender{
[sender resignFirstResponder];
NSLog(@"Tabobjet avant : %@",tabObjet);
NSLog(@"Tabobjets avant : %@",tabObjets);
//inscription dans un dictionnaire
[tabObjet setObject:_titreObjet.text forKey:@"Titre"];
[tabObjet setObject:_nomPersonne.text forKey:@"Nom"];
[tabObjet setObject:_infoContact.text forKey:@"Contact"];
[tabObjet setObject:[NSDate date] forKey:@"DateJour"];
[tabObjet setObject:_dateARendre.text forKey:@"DateARendre"];
[tabObjet setObject:[NSNumber numberWithBool:NO] forKey:@"Rendu"];
int numItems = [tabObjets count];
[tabObjets insertObject:tabObjet atIndex:numItems];
NSLog(@"Tabobjet apres : %@",tabObjet);
NSLog(@"Tabobjets apres : %@",tabObjets);
//écriture dans un fichier plist
[tabObjets writeToFile:appFile atomically:YES];
}
@end
助けてくれてありがとう:)