我想读取存储在PLIST中的数组,修改元素并将其存储回PLIST。
我的简单代码如下:
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>
扩展问题,最终我想将数组向右移一位并在顶部存储一个新的传入值[就像堆栈一样]。
感谢指点。 用户
答案 0 :(得分: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
开头的。