Как загрузить объект после сохранения с encodeWithCoder? - PullRequest
1 голос
/ 16 марта 2010

EDIT_002: Далее переписать: если я сохраню, используя метод, описанный ниже, как будет выглядеть метод его загрузки? (спутники являются NSMutableArray из NSNumbers)

// ------------------------------------------------------------------- **
// METHOD_002
// ------------------------------------------------------------------- **

-(void)saveMoons:(NSString *)savePath {
    NSMutableData *data = [[NSMutableData alloc] init];
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
    [moons encodeWithCoder:archiver];
    [archiver finishEncoding];
    [data writeToFile:savePath atomically:YES];

    [archiver release];
    [data release];
}

* 1006 Гэри *

1 Ответ

1 голос
/ 20 марта 2010

Нашел, моя проблема была в том, что я использовал ...

[moons encodeWithCoder:archiver];

где я должен был использовать ...

[archiver encodeObject:moons];

Следовательно, загрузчик будет выглядеть так:

-(void)loadMoons_V3:(NSString *)loadPath {
    NSData *data = [[NSData alloc] initWithContentsOfFile:loadPath];
    NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
    [self setMoons:[unarchiver decodeObject]];
    [unarchiver finishDecoding];

    [unarchiver release];
    [data release];
}

1010 * Гэри *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...