сохранение NSMutableArrays в pList - PullRequest
1 голос
/ 02 августа 2011

Я пытаюсь сохранить NSMutableArray в pList, но когда я проверяю свой data.pList, внутри нет никаких значений.Есть идеи почему?

-(void)run
{
Global *myGlobal = [Global sharedGlobal];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];

NSMutableDictionary *category = [[NSMutableDictionary alloc]init];
NSMutableDictionary *totalCategory = [[NSMutableDictionary alloc]init];
for (int i = 0 ; i < [myGlobal.categoryArray count];i++){
    Category * c = [categoryArray objectAtIndex:i];

    [category setObject:c.name forKey:@"category"];

    [totalCategory setObject:category forKey:@"allCategory"];

    NSMutableDictionary *stock = [NSMutableDictionary dictionaryWithContentsOfFile:path];
    [stock writeToFile:path atomically:YES];
}
if( totalCategory==nil ){
    NSLog(@"failed to retrieve dictionary from disk");
}
}

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

При сохранении в pList вы должны попытаться сделать это следующим образом.

[totalCategory writeToFile:path atomically:YES];

это пример того, как это работает нормально


+ (void) saveParams:(int)kotuc one:(NSNumber*)one two:(NSNumber*)two three:(NSNumber*)three four:(NSNumber*)four five:(NSNumber*)five six:(NSNumber*)six seven:(NSNumber*)seven eight:(NSArray*)eight{

    NSString *path = [self getNSPath];
    NSDictionary* dw = [[NSDictionary alloc] initWithContentsOfFile:path];
    NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];

    NSArray *keys = [[NSArray arrayWithObjects:@"one", @"two", @"three", @"four", @"five", @"six",@"seven", @"eight",nil] retain];
    NSArray *objects = [[NSArray arrayWithObjects:one, two, three, four, five, six, seven, eight, nil] retain];


    NSMutableDictionary *subDict = [[NSMutableDictionary alloc] initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys];


    ////save old
    [dict setDictionary:dw];
    ////save new
    [dict setObject:subDict forKey:[NSString stringWithFormat:@"%i", kotuc]];    // 
    //write to file
    [dict writeToFile:path atomically:YES];


    [dw release];
    [dict release];
    [subDict release];
    [keys release];
    [objects release];
}
0 голосов
/ 02 августа 2011

Эти две строки не имеют смысла.Первая строка читает словарь из path в stock, вторая строка записывает его обратно.Ничего не было добавлено к stock.

NSMutableDictionary *stock = [NSMutableDictionary dictionaryWithContentsOfFile:path];
[stock writeToFile:path atomically:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...