iphone - Get ObjectManagedContext from Delegate -


i'm need de objectmanagedcontext appdelegate, when tried don't work... dont know why... followed mount of tutorials not work.... code:

appdelegate.h

#import <uikit/uikit.h> @class stopwalletviewcontroller;  @interface stopwalletappdelegate : uiresponder <uiapplicationdelegate>  @property (strong, nonatomic) uiwindow *window;  @property (readonly, strong, nonatomic) nsmanagedobjectcontext *managedobjectcontext; @property (readonly, strong, nonatomic) nsmanagedobjectmodel *managedobjectmodel; @property (readonly, strong, nonatomic) nspersistentstorecoordinator *persistentstorecoordinator;  @property (strong, nonatomic) stopwalletviewcontroller *viewcontroller;  @property (strong,nonatomic) uinavigationcontroller *navigationcontroller;  - (void)savecontext; - (nsurl *)applicationdocumentsdirectory;  @end 

appdelegate.m

#import "stopwalletappdelegate.h" #import "stopwalletviewcontroller.h" @implementation stopwalletappdelegate  @synthesize managedobjectcontext = _managedobjectcontext; @synthesize managedobjectmodel = _managedobjectmodel; @synthesize persistentstorecoordinator = _persistentstorecoordinator; @synthesize navigationcontroller = _navigationcontroller;  //code auto generated  // returns managed object context application. - (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. - (nsmanagedobjectmodel *)managedobjectmodel {     if (_managedobjectmodel != nil) {         return _managedobjectmodel;     }     nsurl *modelurl = [[nsbundle mainbundle] urlforresource:@"stopwallet" withextension:@"momd"];      _managedobjectmodel = [[nsmanagedobjectmodel alloc] initwithcontentsofurl:modelurl];      return _managedobjectmodel;     }  - (nspersistentstorecoordinator *)persistentstorecoordinator {     if (_persistentstorecoordinator != nil) {         return _persistentstorecoordinator;     }      nsurl *storeurl = [[self applicationdocumentsdirectory] urlbyappendingpathcomponent:@"stopwallet.sqlite"];     nserror *error = nil;      _persistentstorecoordinator = [[nspersistentstorecoordinator alloc] initwithmanagedobjectmodel:[self managedobjectmodel]];      if (![_persistentstorecoordinator addpersistentstorewithtype:nssqlitestoretype configuration:nil url:storeurl options:nil error:&error]) {          /*           replace implementation code handle error appropriately.          abort() causes application generate crash log , terminate. should not use function in shipping application, although may useful during development.          typical reasons error here include:           * persistent store not accessible;           * schema persistent store incompatible current managed object model.           check error message determine actual problem was.           if persistent store not accessible, there typically wrong file path. often, file url pointing application's resources directory instead of writeable directory.             if encounter schema incompatibility errors during development, can reduce frequency by:           * deleting existing store:           [[nsfilemanager defaultmanager] removeitematurl:storeurl error:nil]          * performing automatic lightweight migration passing following dictionary options parameter:           @{nsmigratepersistentstoresautomaticallyoption:@yes, nsinfermappingmodelautomaticallyoption:@yes}           lightweight migration work limited set of schema changes; consult "core data model versioning , data migration programming guide" details.          */          nslog(@"unresolved error %@, %@", error, [error userinfo]);          abort();      }     return _persistentstorecoordinator; }  @end 

controller.m

#import "expenseviewcontroller.h" #import "expense.h" #import "expenselocation.h" #import "stopwalletappdelegate.h"  @implementation expenseviewcontroller  @synthesize edittextdate; @synthesize edittextlocation; @synthesize edittextvalue; @synthesize imageviewreceipt; @synthesize managedobjectcontext;  - (void)viewdidload {     [super viewdidload];     // additional setup after loading view, typically nib.     self.navigationitem.title=[nsstring stringwithformat:@"expense"];     uidatepicker *datepicker;     datepicker = [[uidatepicker alloc]init];     [datepicker setdate:[nsdate date]];      [datepicker setdatepickermode:uidatepickermodedate];     [datepicker removetarget:self action:nil forcontrolevents:uicontroleventvaluechanged];     [datepicker addtarget:self action:@selector(updatetextfielddate:) forcontrolevents:uicontroleventvaluechanged];     [edittextdate setinputview:datepicker];      stopwalletappdelegate *appdelegate = (stopwalletappdelegate *)[[uiapplication sharedapplication] delegate];     nsmanagedobjectcontext* context = appdelegate.managedobjectcontext;      managedobjectcontext=context;  }  @end 

this code compiling not work on runtime.... error: nsinvalidargumentexception, reason:'cannot create nspersistentstorecoordinator nil model'

can me?

thanks...

the problem should in - (nsmanagedobjectmodel *)managedobjectmodel . check modelurl

- (nsmanagedobjectmodel *)managedobjectmodel { if (_managedobjectmodel != nil) {     return _managedobjectmodel; }  // give proper name of model here   nsurl *modelurl = [[nsbundle mainbundle] urlforresource:@"failedbankcd" withextension:@"momd"]; _managedobjectmodel = [[nsmanagedobjectmodel alloc] initwithcontentsofurl:modelurl]; return _managedobjectmodel; }    

Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -