iphone - contentsOfDirectoryAtPath crashes -


i want list files in directory in table view of navigation control. shows files in directory. whenever scroll down, simulator crashes. problem? dirarray defined in .h file nsarray *dirarray.

- (void)viewdidload {     [super viewdidload];      nsstring *path = [[nsfilemanager defaultmanager]currentdirectorypath];     nsfilemanager *filemanager = [nsfilemanager defaultmanager];     dirarray = [filemanager contentsofdirectoryatpath:path error:nil];       }  - (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:   (nsinteger)section {     return [dirarray count]; }  - (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath {      static nsstring *cellidentifier = @"cell";         uitableviewcell *cell = [tableview dequeuereusablecellwithidentifier:cellidentifier];     if (cell == nil) {         cell = [[[uitableviewcell alloc]initwithstyle:uitableviewcellstyledefault     reuseidentifier:cellidentifier] autorelease];     }     nsstring *filename = [dirarray objectatindex:indexpath.row];     cell.textlabel.text = filename;      return cell; } 

your problem that

dirarray = [filemanager contentsofdirectoryatpath:path error:nil]; 

will have dirarray pointing autoreleased object. time accessing later, being deallocated. either retain it.

dirarray = [[filemanager contentsofdirectoryatpath:path error:nil] retain]; 

or better, declare property , do

self.dirarray = [filemanager contentsofdirectoryatpath:path error:nil]; 

Comments

Popular posts from this blog

c++ - Is it possible to compile a VST on linux? -

java - Output of Eclipse is rubbish -

jquery - Confused with JSON data and normal data in Django ajax request -