2013-02-08 9 views
-2

Я новичок в объективе c, и проблема, с которой я столкнулась, заключается в том, что мой «scores.xml» не перезаписывается, как только я попытаюсь его сохранить. Я импортировал «scores.xml» в свой проект, но он не перезаписывается, как только я пытаюсь это сделать. Что я делаю не так? У кого-нибудь есть идеи?Объект c: Невозможно перезаписать файл с массивом

- (void) writeHighScores:(NSString *)PlayerName{ 
NSString *highscorePath = [[NSString alloc]init]; 
NSArray * paths = [[NSBundle mainBundle] pathsForResourcesOfType: @".xml" inDirectory:@""]; 
for (NSString * path in paths) 
{ 
    highscorePath = [path substringToIndex:([path length])]; 
} 

NSMutableArray *arrayFromFile = [NSMutableArray arrayWithContentsOfFile:highscorePath]; 

for (NSMutableArray *element in arrayFromFile){ 
    if (score > [[element objectAtIndex:1] intValue]){ 
     [element replaceObjectAtIndex:0 withObject:PlayerName]; 
     [element replaceObjectAtIndex:1 withObject:[NSString stringWithFormat:@"%d", score]]; 
     break; 
    } 
} 
NSLog(@"Highscore path = %@",highscorePath); 

    // Write array 
    [arrayFromFile writeToFile:highscorePath atomically:YES]; 
} 
+0

Добавить код для подтверждения возвращаемого значения; 'if (! [arrayFromFile writeToFile: ...]) {NSLog (@" writeToFile failed! "); } '. Одной из причин этого отказа является то, что массив не содержит только * объектов списка свойств * (подробнее см. Ссылку). – trojanfoe

+0

@trojanfoe или, возможно, вы не можете просто писать файлы здесь и там, как думает OP. – 2013-02-08 16:57:17

+0

Но опять же, [это было задано много, много раз ...] (http://stackoverflow.com/questions/5853014/writing-into-a-file-objective-c) – 2013-02-08 16:58:34

ответ

3

1) Вы не можете написать приложение. Период. Напишите в другое место (например, в папку «Документы»).

2) Что должен делать этот код? Это не имеет никакого смысла.

NSString *highscorePath = [[NSString alloc]init]; 
NSArray * paths = [[NSBundle mainBundle] pathsForResourcesOfType: @".xml" inDirectory:@""]; 
for (NSString * path in paths) 
{ 
    highscorePath = [path substringToIndex:([path length])]; 
}