ios - Can only save core data when text in message is altered? Xcode -
so in xcode, have notes app utilizes core data. there 2 fields, title textfield , message textview. 1 issue i'm having if user makes note , decides go , edit later, user has edit message have able save again. want save regardless if change message or title. thanks
#import "devicedetailviewcontroller.h" @interface devicedetailviewcontroller () @end @implementation devicedetailviewcontroller @synthesize device; - (nsmanagedobjectcontext *)managedobjectcontext { nsmanagedobjectcontext *context = nil; id delegate = [[uiapplication sharedapplication] delegate]; if ([delegate performselector:@selector(managedobjectcontext)]) { context = [delegate managedobjectcontext]; } return context; } @synthesize message; @synthesize titles; @synthesize button; - (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil { self = [super initwithnibname:nibnameornil bundle:nibbundleornil]; if (self) { // custom initialization } return self; } - (void)viewdidload { [super viewdidload]; [button setenabled:no]; titles.delegate = self; message.delegate = (id)self; // additional setup after loading view. if (self.device) { [self.titles settext:[self.device valueforkey:@"name"]]; [self.message settext:[self.device valueforkey:@"version"]]; } } - (void)didreceivememorywarning { [super didreceivememorywarning]; // dispose of resources can recreated. } - (ibaction)cancel:(id)sender { [self dismissviewcontrolleranimated:yes completion:nil]; } - (ibaction)save:(id)sender { nsmanagedobjectcontext *context = [self managedobjectcontext]; if (self.device) { // update existing device [self.device setvalue:self.titles.text forkey:@"name"]; [self.device setvalue:self.message.text forkey:@"version"]; } else { // create new device nsmanagedobject *newdevice = [nsentitydescription insertnewobjectforentityforname:@"device" inmanagedobjectcontext:context]; [newdevice setvalue:self.titles.text forkey:@"name"]; [newdevice setvalue:self.message.text forkey:@"version"]; } nserror *error = nil; // save object persistent store if (![context save:&error]) { nslog(@"can't save! %@ %@", error, [error localizeddescription]); } [self dismissviewcontrolleranimated:yes completion:nil]; } - (bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string { if (titles.text.length >= 35 && range.length == 0) return no; return yes; } //code beyond point disabling keyboard when click outside of textfield -(void)touchesbegan:(nsset *)touches withevent:(uievent *)event { [message resignfirstresponder]; [titles resignfirstresponder]; } - (bool)textfieldshouldreturn:(uitextfield *)textfield { [titles resignfirstresponder]; return no; } //enabling/disabling 'save' button based on texfield data - (bool)textview:(uitextview *)textview shouldchangetextinrange:(nsrange)range replacementtext:(nsstring *)text { if ([titles.text length] != 0 && [message.text length] != 0) { [button setenabled:yes]; } else { [button setenabled:no]; } return yes; } @end
Comments
Post a Comment