Прежде всего, последние два метода не кажутся релевантными, так как вы не кодируете объект, которому принадлежат эти методы.Опять же, протокол NSCoding
включает методы encodeWithCoder:
и initWithCoder:
.В протоколе NSCoding
нет метода decodeWithCoder:
.
Во-вторых, вы создаете новый объект NSMutableArray
, инициализированный несколькими элементами, и архивируете его в файл, чтобы он записывал поверх существующего.Вам нужно будет получить существующий массив путем разархивирования файла, создания изменяемой копии и добавления значений.Так что код будет примерно таким,
NSArray *existingValues = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
NSArray *newValues = [existingValues copy];
[newValues addObjectsFromArray:[NSArray arrayWithObjects:pl, name, age, position, nil]];
[NSKeyedArchiver archiveRootObject:newValues toFile:path];
[newValues release];