Prince Agrawal
Prince Agrawal

Reputation: 3607

Visible SQLite file but invisible data in iOS simulator

i've created an app that uses Core-data. Now i want to see the data that i've stored in various entities in that app. App has been installed in iOS-simulator (7.0.3)

This did not help

ScreenShot:Table schema

Here is the Empty table

And here is how I am saving the data..

EffController *newController = [NSEntityDescription insertNewObjectForEntityForName:@"EffController" inManagedObjectContext:self.managedObjectContext];
    newController.name=@"fgfghjfghj";
    newController.uniqueUID= @"ffghfg";
    newController.parentOutputID = @0;
    newController.localIP=@"***.***.***.***";
    newController.localPort= @XXXX;

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]
                                    initWithEntityName:@"EffControllerType"];
    NSError *requestError = nil;
    /* And execute the fetch request on the context */
    NSArray *types = [self.managedObjectContext executeFetchRequest:fetchRequest error:&requestError];

    for (EffControllerType *type in types) {
        if ([type.name isEqualToString:@"***********"]) {
            newController.type= type;
            break;
        }
    }
    NSError *error = nil;
    if (![newController.managedObjectContext save:&error]) { //here is the mistake.
    //It should be self.managedobjectContext    
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

Edit
After long discussion with @HaniIbrahim problem was solved… But still not clear about why the content was visible in app, not in sqlite file? & why context for managed object? Can anybody help to find real issue behind the topic?

Upvotes: 1

Views: 543

Answers (2)

Hani Ibrahim
Hani Ibrahim

Reputation: 1449

After you insert, update or delete anything in CoreData you have to save context to actual apply your updates

NSError *error = nil;
[context save:&error]; // context is your managedObjectContext that you use to communicate with coreData

Edit

After you post your code I found that you are using two context self.managedObjectContext and newController.managedObjectContext ?

Upvotes: 1

GenieWanted
GenieWanted

Reputation: 4513

You can view the data by using SQLite Manager plugin for Firefox. Open firefox -> Install the plugin -> Open the plugin -> navigate to the below path using Open File option

Library/Application Support/iPhone Simulator/VERSION_OF_YOUR_SIMULATOR/Applications/YOUR_PROJECT(Usually in alphanumeric)/YOUR_DB_FILE.sqlite

That should do.

There are number of plugins and applications available similar to SQLite Manager. You may choose that as per your desire.

Upvotes: 0

Related Questions