ios - Variable getting released between calls -


i developing tweak ios using logos/theos.

i need store last 2 characters user has typed in @ times.

my code is:

static nsstring *lasttwochars = [[nsstring alloc] init]; ... if (lasttwochars.length < 2) {     lasttwochars = [lasttwochars stringbyappendingstring:text]; } else {     lasttwochars = [lasttwochars stringbyappendingstring:text];     lasttwochars = [lasttwochars substringfromindex:1]; } ... 

(in scope, text last character entered in keyboard)

this code works fine, until press third character. after long time of trial , error, found because variable lasttwochars getting released, , becoming different object.

i cannot figure out how keep object being deallocated , changing object. i've tried retain variable, either i'm doing wrong, or won't work.

any appreciated.

alright. figured out. droppy hinting @ problem.

i fixed retaining new strings:

if (lasttwochars.length < 2) {     lasttwochars = [[lasttwochars stringbyappendingstring:text] retain]; } else {     lasttwochars = [[lasttwochars stringbyappendingstring:text] retain];     lasttwochars = [[lasttwochars substringfromindex:1] retain]; } 

i didn't know stringbyappendingstring , substringfromindex creating new nsstring objects, again droppy.

edit: thought may memory leak, droppy confirmed was.

this new code:

if (lasttwochars.length < 2) {     lasttwochars[lasttwochars.length] = (unichar) text; } else {     lasttwochars[0] = lasttwochars[1];     lasttwochars[1] = (unichar) text; } 

Comments