2012-05-01 2 views
0

Я хотел бы прочитать в массиве, который я сохранил в PLIST, изменить элемент и сохранить его обратно в PLIST.Редактировать массив NSMutable по индексу

Мой простой код выглядит следующим образом:

NSArray *mathScoreArray; 
NSNumber *score1 = [NSNumber numberWithInteger:score]; 
NSMutableArray *scoreArray1 = [[NSArray arrayWithArray:mathScoreArray] init]; 
[scoreArray1 replaceObjectAtIndex:4 withObject:score1]; 
[dictionary setObject:scoreArray1 forKey :@"mathScoreArray"]; 
[dictionary writeToFile:finalPath atomically:YES]; 

Я получаю ошибки для «replaceObjectAtIndex» для изменения массива. Как я могу это сделать ??

Просто для справки, мой PLIST выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>mathQues</key> 
    <integer>1</integer> 
    <key>mathScore</key> 
    <integer>0</integer> 
    <key>mathScoreArray</key> 
    <array> 
     <integer>10</integer> 
     <integer>20</integer> 
     <integer>30</integer> 
     <integer>40</integer> 
     <integer>50</integer> 
    </array> 
</dict> 
</plist> 

Расширение проблемы, в конце концов, я хотел бы сдвигать массив на одно место вправо и сохранить новое входное значение на вершине [так же, как стек ].

Спасибо за указатели. пользователь

ответ

3

Изменить эту строку:

NSMutableArray *scoreArray1 = [[NSArray arrayWithArray:mathScoreArray] init]; 
// you need NSMutableArray, not NSArray^
//       you already got an array, no need to initialize^

к:

NSMutableArray *scoreArray1 = [NSMutableArray arrayWithArray:mathScoreArray]; 

Кроме того, в вашем коде нет никаких признаков того, как вы читали NSArray, чтобы начать с.

+0

Привет, Биньямин, спасибо за помощь. Я изменил свой код довольно много после публикации вопроса. В настоящее время PLIST имеет 3 элемента, два числа и один массив с 5 элементами. Все, что мне хотелось бы, - это прочитать существующий массив баллов из PLIST и нажать новый балл поверх этого массива баллов и записать его обратно в PLIST. В этом контексте я не уверен, является ли NSMutableArray для mathScoreArray (из PLIST) правильным выбором, не так ли? Спасибо, пользователь – user1314186

+0

Добро пожаловать, рад, что я мог бы помочь :) – MByD

Смежные вопросы