NSManagedObject вызывает NSUnknownKeyException при доступе из AppDelegate - PullRequest
0 голосов
/ 04 декабря 2011

Добрый день.

В моем AppDelegate.h

@ свойство (неатомное, сохранение) Config * AppConfig;

В моем AppDelegate.m я могу получить к нему доступ без проблем.

UIAlertView *alert = 
[[UIAlertView alloc] initWithTitle:@"Settings Saved" 
                           message:[NSString stringWithFormat:@"%@\n%@\n%@\n%@\n%@",
                                    AppConfig.Username, AppConfig.Password, 
                                    AppConfig.Server, AppConfig.LastRefNo,
                                    AppConfig.LastSync]
                          delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];

AppConfig заполняется в AppDelegate следующим образом

- (void)GetSettings
{
    // Define our table/entity to use  
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Config" inManagedObjectContext:managedObjectContext];   

    // Setup the fetch request  
    NSFetchRequest *request = [[NSFetchRequest alloc] init];  
    [request setEntity:entity];   

    // Define how we will sort the records  
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Username" ascending:NO];  
    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];  
    [request setSortDescriptors:sortDescriptors];  
    [sortDescriptor release];   

    // Fetch the records and handle an error  
    NSError *error;  
    NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];   

    if (mutableFetchResults != nil && [mutableFetchResults count] > 0) {  
        // Save our fetched data
        AppConfig = [mutableFetchResults objectAtIndex:0];
    }  
    else 
    {
        AppConfig = nil;
    }

    [mutableFetchResults release];  
    [request release];  
}

Если я пытаюсь получить доступ к AppConfig из другого ViewController через этот

- (void)loadAccount
{
    SpotlightAppDelegate *_appDelegate = (SpotlightAppDelegate *) [[UIApplication sharedApplication] delegate];

    txtUsername.text = [_appDelegate.AppConfig valueForKey:@"Username"];
    txtPassword.text = [_appDelegate.AppConfig valueForKey:@"Password"];
}

NSUnknownKeyException выдается в строке 2.

Заранее спасибо.

1 Ответ

0 голосов
/ 07 декабря 2011

Хорошо, я нашел его после некоторого отдыха: -)

Я должен был позвонить сохранить на AppConfig.

...