ios - Replace item in NSMutablearray -


i have nsmutablearray have data saved to. data input on main viewcontroller. when tap on saved item, secondviewcontroller has textfield data entry loaded in order edited. want able edit item , save array.

i new objective-c / cocoa touch please go easy on me.

- (todoitem *) updatetodoitem: (todoitem *) todoitem {     nslog(@"todoitemsvc.updatetodoitem: %@", [todoitem description]);     nsmutablearray *todoitems = [nsmutablearray array];         (nsstring *todoitem in todoitems) {             if ([[todoitem] isequaltostring:todoitems]) {         [todoitems replaceobjectatindex:todoitem];     } } 

i know isnt correct , may off base im hoping moving in right direction this.

edit

here todoitemsvcarchive.m file

#import "todoitemsvcarchive.h"  @implementation todoitemsvcarchive  nsstring *filepath;  nsmutablearray *todoitems;  - (id) init {     nsarray *dirpaths =     nssearchpathfordirectoriesindomains(nsdocumentdirectory,                                     nsuserdomainmask, yes);     nsstring *docsdir = [dirpaths objectatindex:0];     filepath = [[nsstring alloc] initwithstring: [docsdir                                                    stringbyappendingpathcomponent: @"todoitems.archive"]];     [self readarchive];     return self; }      - (void) readarchive {     nsfilemanager *filemgr = [nsfilemanager defaultmanager];     if ([filemgr fileexistsatpath: filepath]) {         todoitems = [nskeyedunarchiver unarchiveobjectwithfile: filepath]; }     else {         todoitems = [nsmutablearray array]; } }  - (void) writearchive {     [nskeyedarchiver archiverootobject:todoitems tofile:filepath];  }  - (todoitem *) createtodoitem: (todoitem *) todoitem {     nslog(@"todoitemsvc.createtodoitem: %@", [todoitem description]);      [todoitems addobject:todoitem];     [self writearchive];      return todoitem; }   - (nsmutablearray *) retrievealltodoitems {     return todoitems; }  - (todoitem *) updatetodoitem: (todoitem *) todoitem {     nslog(@"todoitemsvc.updatetodoitem: %@", [todoitem description]);     nsmutablearray *todoitems = [nsmutablearray array];     (nsstring *todoitem in todoitems) {         if ([[todoitem] isequaltostring:todoitems]) {             [todoitems replaceobjectatindex:todoitem];         }     }     // return todoitem; }  - (todoitem *) deletetodoitem: (todoitem *) todoitem {     nslog(@"todoitemsvc.deletetodoitem: %@", [todoitem description]);      [todoitems removeobject:todoitem];    [self writearchive];      return todoitem; }  @end 

edit

i guess dont understand how actual index of object needs replaced.

edit

i think better

- (todoitem *) updatetodoitem: (todoitem *) todoitem {     nslog(@"todoitemsvc.updatetodoitem: %@", [todoitem description]);     nsuinteger index = [todoitems indexofobject:todoitem];     [todoitems replaceobjectatindex:0 withobject:todoitem];      return todoitem; } 

im still not sure how specify correct index.

over complicating entire thing

changed todoitemtext todoitemobject , made todoitem rather nsstring. when click update, updates object , when go list, view calls reloaddata , view updated new object

- (ibaction)updatetodoitem:(id)sender {     nslog(@"updatingtodoitem: entering");     todoitemobject.todoitem = todoitem.text; }  - (void)viewdidload {     [super viewdidload];     // additional setup after loading view.      todoitem.text = todoitemobject.todoitem;  } 

works champ now.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -