iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Core Data in TabView app (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/82990-core-data-tabview-app.html)

JeePeeS 21-01-11 22:06

Core Data in TabView app
 
Dag,

Ik wil Core Data toevoegen aan een bestaande app. Mijn app heeft 3 TabViewControllers en de Core Data moet overal toegankelijk zijn. Waar moet ik nu de
NSManagedObjectModel *managedObjectModel;
NSManagedObjectContext *managedObjectContext;

zetten? In de header van de ViewController of in de AppDelegate.h?

Wie kan me helpen want het duizelt me allemaal een beetje.

TUX2K 21-01-11 22:33

Meestal in je AppDelegate.

Maak maar eens en nieuw project met coredata en kijk hoe apple het in de coredate project template heeft opgelost.

Let wel dat in 4.2 de document directory als URL wordt op gevraagt dit werk niet in 3.1.3.
Maar dat is makkelijk op te lossen.

Geno 21-01-11 22:45

Idd, gewoon nieuw project starten met Core Data en dan alles wat je tot nu toe hebt geschreven, naar het nieuwe project kopiėren.
Dan staat alles al goed in je AppDelegate, je NSManagedObjectModel, NSManagedObjectContext en de NSPersistentStoreCoordinator.

Je kan als je wil in de header van de ViewControllers de NSManagedObjectContext declareren. Zo doe ik het zelf. Je kan het ook lokaal declareren.

JeePeeS 21-01-11 22:49

Dank jullie. Ik zal het zo doen.

JeePeeS 22-01-11 14:13

Bizar maar ik wordt gek. Het is me, door de hele applicatie van begin af weer op te gaan bouwen, om de Core Data aan de praat te krijgen... Maar....

Nu wil ik een property gaan toevoegen aan mijn entity en crashed mijn app weer!

Op welke manier kan ik mijn database opnieuw koppelen?

TUX2K 22-01-11 15:14

Als je je coredate model wijzigd is de database die je app eerder gecreerd heeft niet meer geldig. Imers je datamodel is gewijzigd.
Hier door crashed je app dus bij opstarten.
Tijden ontwikkelen is dat alle maal niet z'n probleem app er af gooien en opnieuw proberen.

Maar als je app klaar is moet en al in de appstore staat moet je dus uitkijken, want als je dan je model wijzigd zal je app dus crashen.
Hier voor kan je versies van je datamodel gebruiken, apple heeft hier hele goede documentatie over: Loading…

Chrizzz 27-01-11 22:27

Kijk eens naar deze tutorial. Die is lekker duidelijk. Daarna snap je het.
Core Data Tutorial: Getting Started | Ray Wenderlich

Verder is de tip om Apple Sample Code app "CoreDataRecipes" te gebruiken als basis

JeePeeS 27-01-11 23:37

Het is me inderdaad door deze tut duidelijker geworden. Dank voor je tip. Echter....

Ik heb alleen nog een probleem met het updaten van een cell. In een detailView edit ik de gegevens van die cell. Als ik dan terugkom in de tableview controller wil ik dat de table opnieuw gelezen wordt. Hoe doe ik dat nu?

Chrizzz 28-01-11 08:05

Als je een modal view gebruikt dan zou dat niet nodig moeten zijn. Zie ook CoreDataRecipe.

Maar probeer eens
Citaat:

-(void)viewWillAppear(
[self.tableView reloadData];
)
In je Tableview

Of je slaat de gegevens op in je detailView. Dan moet je daar waar je op "Save" drukt iets wat lijkt op dit toevoegen:
Citaat:

// Save the context.
NSError *error = nil;
if (![context save:&error]) {

NSLog(@"Unresolved error %@, %@", error, [error userInfo]);

}

JeePeeS 28-01-11 15:19

Dank je. Onderstaande link heeft me geholpen en het kwartje helemaal doen vallen...

banane » Blog Archive » iPhone Dev: Editing TableView with a DetailView & Core Data


Alle tijden zijn GMT +2. Het is nu 06:21.