2013-07-19 10 views

Odpowiedz

5

Sprawdź ich dokumentację.
https://github.com/magicalpanda/MagicalRecord/blob/master/Docs/Saving-Entities.md

Poza tym bardzo dobrze reagują, gdy zadawałem im pytania w przeszłości. Zawsze możesz też spróbować swoich sił.

Edytuj:

Nie wiem, dlaczego dostałem głos w dół. Może dokumentacja była zbyt zagmatwana. Spróbuj użyć

- (void) MR_saveToPersistentStoreWithCompletion:(MRSaveCompletionHandler)completion; 

nie używam najnowszej wersji MagicalRecord, ale myślę, że to powinno być prawidłowe

//get the context for the current thread 
    //this context can be updated by anyone other process on this thread that uses the same MR_contextForCurrentThread call 
    //it's a local store that can be merged to a parent store 
    NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread]; 

    //create an NSManagedObject of type YourEntity and insert it into the localContext object 
    NSManagedObject *obj = [YourEntity MR_createInContext:localContext]; 

    //make any updates to obj 

    //save the localContext async 
    //this call should save all nested NSManagedObjectContexts as well (if they exist) 
    [localContext MR_saveToPersistentStoreWithCompletion:^{ 
     //when the async save is complete, this block gets executed 
     //blocks work very similarly to javascript callbacks 
     //basically it's a function reference or block of code that get's packaged up and can be passed around 
     //In this case, the completion block allows to to run any code after the save has been completed. 
    }]; 

Jedno nie zdawałem sobie sprawy, kiedy zacząłem kiedy tworzę podmiot , również wstawił to w kontekst. To spowodowało, że przypadkowo zapisałem obiekty, których nie potrzebowałem. Aby tego uniknąć, konfiguruję podkontekst i zapisuję go tylko wtedy, gdy chcę utrwalić obiekty.

self.context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; 
self.context.parentContext = [NSManagedObjectContext MR_defaultContext]; 
+0

nie jestem również pewien, dlaczego dostałeś skargę, to nie ja (tylko upowszechniony, aby to zanegować). Czy mógłbyś podać jeszcze jeden wiersz kodu, który implementuje wspomnianą metodę? Nadal zdobywam całą składnię Objective-C i tak naprawdę nie rozumiem zakończenia działania withCompletion:^(BOOL Success, NSError * error), która autouzupełnia się po wpisaniu tej metody ... – Apollo

+3

FYI - To nie było ja to głosowałem, ale ta odpowiedź _did_ pojawia się w kolejce flag dla 10 tysięcy użytkowników, prawdopodobnie dlatego, że odpowiedzi typu "tylko link" nie są uważane za dobrą rzecz na StackOverflow. Zawsze dołączaj wystarczającą ilość informacji, aby po przerwaniu linku Twoja odpowiedź była nadal przydatna. Więcej informacji można znaleźć w [tutaj] (http://meta.stackexchange.com/q/8231/164376). – joran

+1

MR_contextForCurrentThread jest przestarzałe – Gargo

Powiązane problemy