Domanda

So che questo non ha alcun senso, ma sto diventando davvero strano errore in un iPhone App Sto costruendo con Core Data e chiamando CGRectOffset. Il mio App Delegato metodo didFinishLaunchingWithOptions aspetto:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

// Setup the Managed Object Context
NSManagedObjectContext *context = [self managedObjectContext];
if (!context) {
    // Do something - Like exit
}

//Load up the database form a pList
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"tJournals" ofType:@"plist"];
NSMutableArray *plistJournals = [NSMutableArray arrayWithContentsOfFile:plistPath];

//Create a bunch of journals
for (NSDictionary *journal in plistJournals) {
    [TJournal journalWithDictionary:journal inManagedObjectContext:context];
}

NSError *error = nil;
[context save:&error];

// ------ Create the View Controller ------
// The Scrolling List
JournalListVC *jvc = [[JournalListVC alloc] init];

// Adjust for the Status Bar's height
CGRect viewFrame = CGRectOffset(jvc.view.frame, 0.0, 20.0);
jvc.view.frame = viewFrame;

jvc.managedObjectContext = context;

// Add the View Controller to the screen
[self.window addSubview:jvc.view];
[self.window makeKeyAndVisible];

return YES;
}

Al momento, l'applicazione si blocca con il seguente errore quando lascio la CGRect viewframe riga:

"Terminare app a causa di eccezione non identificata 'NSInternalInconsistencyException', la ragione: '+ entityForName: impossibile individuare un NSManagedObjectModel per nome dell'entità 'TJournal''"

Se io commento la linea CGRect, funziona benissimo. La chiamata all'interno del per esegue ciclo più che bene (lo scrivere di dati su un Core Data DB nomi di entità TJournal, e fa esattamente quello che si suppone.) Ovviamente, non v'è alcuna dipendenza da Core Data per CGRectOffset, quindi sto cercando di indovinare questo errore è spuria. Ma non posso, per la vita di me, capirlo.

Ho provato la pulizia di tutti gli obiettivi, spazzando via il database nel simulatore, ecc Ma nulla sembra funzionare.

Tutte le idee? Grazie!

È stato utile?

Soluzione

Si noti che quando si fa riferimento jvc.view.frame, si sta caricando dinamicamente vista di JVC. Se il contenuto della vista (o XI ter!) Hanno una dipendenza da un contesto oggetto gestito quando è caricato, che potrebbe produrre l'errore.

Prova a spostare la linea jvc.managedObjectContext = context; a destra dopo JournalListVC *jvc = [[JournalListVC alloc] init];.

(PS:. Vostra vista non deve rendere conto per la barra di stato, invece, il vostro UIWindow dovrebbe farlo, e poi telaio di vista del vostro controller di vista dovrebbe essere solo limiti della finestra)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top