2012-05-01 4 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

안녕하세요. Binyamin, 도와 주셔서 감사합니다. 질문을 게시 한 후에 코드를 변경했습니다. 현재 PLIST에는 3 개의 요소, 2 개의 Numbers 및 1 개의 Array (요소가 5 개)가 있습니다. 필자가 원하는 것은 PLIST에서 기존의 배열 배열을 읽고이 점수 배열의 맨 위에 새 스코어를 놓고 PLIST에 다시 쓸 수있게하는 것입니다. 이 문맥에서 (PLIST에서) mathScoreArray에 대한 NSMutableArray가 올바른 선택인지 확실하지 않습니다. 고마워요, 사용자 – user1314186

+0

당신을 환영합니다, 내가 도울 수있어서 기쁩니다 :) – MByD

관련 문제