ios - Coredata database prepopulation is not filled -


i'm trying prepopulate coredata database sqlite file, don't understand why database not filled. sqlite file filled data need , added in bundle ressources.

here persistentstorecoordinator method int appdelegate :

- (nspersistentstorecoordinator *)persistentstorecoordinator {     if (persistentstorecoordinator != nil)     {         return persistentstorecoordinator;     }     nsstring    *storepath = [[self applicationdocumentsdirectory] stringbyappendingstring:@"myapp.db"];     nserror     *error = nil;      nsfilemanager   *fm = [nsfilemanager defaultmanager];      if (![fm fileexistsatpath:storepath])     {         nsstring    *defaultstorepath = [[nsbundle mainbundle] pathforresource:@"myapp" oftype:@"db"];          if (defaultstorepath)         {             [fm copyitematpath:defaultstorepath topath:storepath error:null];         }     }      nsurl           *storeurl = [nsurl fileurlwithpath:storepath];     nsdictionary    *options = [nsdictionary dictionarywithobjectsandkeys:[nsnumber numberwithbool:yes], nsmigratepersistentstoresautomaticallyoption, [nsnumber numberwithbool:yes], nsinfermappingmodelautomaticallyoption, nil];      persistentstorecoordinator = [[nspersistentstorecoordinator alloc] initwithmanagedobjectmodel:[self managedobjectmodel]];      if (![persistentstorecoordinator addpersistentstorewithtype:nssqlitestoretype configuration:nil url:storeurl options:options error:&error])     {         nslog(@"unresolved error : %@: %@", error, [error userinfo]);         abort();     }      return persistentstorecoordinator; } 

in view controller, try fetch entries seems enter code hereempty :

    nsmanagedobjectcontext  *managedobjectcontext = [self managedobjectcontext]; initwithentityname:@"type_textimage_4text"];     nsfetchrequest          *fetchrequest = [[nsfetchrequest alloc] init];     nsentitydescription     *description = [nsentitydescription entityforname:@"type_textimage_4text" inmanagedobjectcontext:managedobjectcontext];      [fetchrequest setentity:description];       nsmutablearray  *questions = [[managedobjectcontext executefetchrequest:fetchrequest error:nil] mutablecopy];      nslog(@"question : %@", questions); 

i missed don't find what. can me please ?

in answer coment above, i'm adding appdelegate.m file of 1 app includes prepopulated sqlite database. selected "use core data" when created project on xcode. although works me, believe better praxis use nsdocument kind of applications. 1 of advantages project on track icloud compatible. haven't done yet, i'm speaking i've read/seen.

// //  appdelegate.m //  // //  #import "appdelegate.h" #import "mainview.h"   @implementation appdelegate  @synthesize window = _window;  @synthesize managedobjectcontext = __managedobjectcontext; @synthesize managedobjectmodel = __managedobjectmodel; @synthesize persistentstorecoordinator = __persistentstorecoordinator;    - (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions {     uinavigationcontroller *navviewcontroller = (uinavigationcontroller *)self.window.rootviewcontroller;           mainview *main=[[navviewcontroller viewcontrollers]objectatindex:0];         main.managedobjectcontext=self.managedobjectcontext;       return yes;  }  - (void)applicationwillresignactive:(uiapplication *)application{ }  - (void)applicationdidenterbackground:(uiapplication *)application {  }  - (void)applicationwillenterforeground:(uiapplication *)application {  }  - (void)applicationdidbecomeactive:(uiapplication *)application {  }  - (void)applicationwillterminate:(uiapplication *)application {  }    - (void)savecontext {     nserror *error = nil;     nsmanagedobjectcontext *managedobjectcontext = self.managedobjectcontext;     if (managedobjectcontext != nil) {         if ([managedobjectcontext haschanges] && ![managedobjectcontext save:&error]) {              nslog(@"unresolved error %@, %@", error, [error userinfo]);             abort();         }      } }  #pragma mark - core data stack         - (nsmanagedobjectcontext *)managedobjectcontext {     if (__managedobjectcontext != nil) {         return __managedobjectcontext;     }      nspersistentstorecoordinator *coordinator = [self persistentstorecoordinator];     if (coordinator != nil) {         __managedobjectcontext = [[nsmanagedobjectcontext alloc] init];         [__managedobjectcontext setpersistentstorecoordinator:coordinator];     }     return __managedobjectcontext; }       // returns managed object model application. // if model doesn't exist, created application's model. - (nsmanagedobjectmodel *)managedobjectmodel {     if (__managedobjectmodel != nil) {         return __managedobjectmodel;     }      nsurl *modelurl = [[nsbundle mainbundle] urlforresource:@"solvents" withextension:@"momd"];        __managedobjectmodel = [[nsmanagedobjectmodel alloc] initwithcontentsofurl:modelurl];     return __managedobjectmodel; }    - (nsstring *)applicationdocumentsdirectorystring {      nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);     nsstring *basepath = ([paths count] > 0) ? [paths objectatindex:0] : nil;     return basepath; }       - (nspersistentstorecoordinator *)persistentstorecoordinator {     if (__persistentstorecoordinator != nil) {         return __persistentstorecoordinator;     }      nsurl *storeurl = [[self applicationdocumentsdirectory] urlbyappendingpathcomponent:@"solvents.sqlite"];      nsstring *storepath = [[self applicationdocumentsdirectorystring] stringbyappendingpathcomponent: @"solvents.sqlite"];       //nslog(@"store path %@", storepath);     //nslog(@"store url%@", storeurl );        nsfilemanager *filemanager = [nsfilemanager defaultmanager];      if (![filemanager fileexistsatpath:storepath ]) {            nsstring *defaultstorepath = [[nsbundle mainbundle] pathforresource:@"solvents" oftype:@"sqlite"];           if (defaultstorepath) {              [filemanager copyitematpath:defaultstorepath topath:storepath error:null];         }     }         nserror *error = nil;     __persistentstorecoordinator = [[nspersistentstorecoordinator alloc] initwithmanagedobjectmodel:[self managedobjectmodel]];     if (![__persistentstorecoordinator addpersistentstorewithtype:nssqlitestoretype configuration:nil url:storeurl options:nil error:&error]) {             nslog(@"unresolved error %@, %@", error, [error userinfo]);         abort();     }          return __persistentstorecoordinator; }       #pragma mark - application's documents directory  // returns url application's documents directory. - (nsurl *)applicationdocumentsdirectory {     return [[[nsfilemanager defaultmanager] urlsfordirectory:nsdocumentdirectory indomains:nsuserdomainmask] lastobject]; }     @end 

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -