ОБНОВЛЕНИЕ: Выяснили некоторые вещи и изменили код.
Когда я добавляю свой NSDictionary
в мой массив, он внезапно заменяет предыдущий словарь, который я добавил в прошлый раз. Я не знаю, почему это происходит. Я использую plist в качестве хранилища данных.
Я получаю сообщение об ошибке, подобное этому:
Поток 1: Программа получила сигнал: "EXC_BAD_ACCESS".
Init
-(id)init{
self=[super init];
if(self){
dbArray = [[NSMutableArray alloc] init];
}
return self;
}
Добавление нового элемента.
-(void)addNewItem:(NSString *)aString
{
// Creates a mutable dictionary with a anonymous string under the NAME key.
NSDictionary *newString = [[NSDictionary alloc] initWithObjectsAndKeys:aString,@"name", nil];
// Adds the new string to empty dbArray.
[dbArray addObject:(newString)];
NSLog(@"[add]:Added anonymous string to dbArray, under name key.");
// Writes the current dbArray (with the dict) to plist and releases retain counts.
[self writeItem];
[newString release];
}
Мой способ просмотра моих данных.
-(void)viewData
{
// View data from the created plist file in the Documents directory.
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *finalPath = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:finalPath]) {
self.dbArray = [NSMutableArray arrayWithContentsOfFile:finalPath];
}
else {
self.dbArray = [NSMutableArray array];
}
}