ios - App crash Due to memory managment -


#import "myviewcontroller.h" #import "datasynchandler.h" #import "parenttableviewcell.h" #import "ayaah.h" static nsstring *parentcellidentifier = @"parenttableviewcell"; @interface myviewcontroller () {     double pinchscale;     uipinchgesturerecognizer *twofingerpinch;     cgpoint buttonposition;     nsindexpath *ipath;     dbmanager *bmanager;     cgpoint p;     uifont *df;     uifont *df1;     nsmutablearray *header;     nsuserdefaults *defaults;    cgaffinetransform cg; } @end  @implementation myviewcontroller @synthesize datasource;// nsmutable array have filled sqlite databasedata @synthesize ptc;// customcell  - (void)viewdidload {     [super viewdidload];        self.datasource=[[nsmutablearray alloc]init];     cg=_tableview.transform;     self.tableview.estimatedrowheight = 80.0;     _tableview.rowheight = uitableviewautomaticdimension;     self.tableview.delegate=self;     self.tableview.datasource=self;     uipinchgesturerecognizer  * recognizer = [[uipinchgesturerecognizer alloc] initwithtarget:self action:@selector(twofingerpinch:)];     recognizer.delegate = self;     [_tableview addgesturerecognizer:recognizer];     [self fetchmoreayah];    }  -(void) viewwillappear:(bool)animated {     [super viewwillappear:animated];     header=[[nsmutablearray alloc]init];     (int = 0; i<[self.datasource count]; i++) {                 [header addobject:[@(i) stringvalue]];     }     [self fetchmoreayah];         [self.tableview reloaddata]; } - (void)fetchmoreayah {        defaults=[nsuserdefaults standarduserdefaults]; //custom font name , size set user in settings , creating new font according users desire     df=[uifont fontwithname:[defaults objectforkey:@"fontstyle"] size:(cgfloat)[[defaults objectforkey:@"font"] floatvalue]];     df1=[uifont systemfontofsize:(cgfloat)[[defaults objectforkey:@"font"] floatvalue]];     self.datasource=[[datasynchandler defaulthandler] fetchcompletesurahforselectedsurahid:self.surahid andurdutranslatorref:[defaults objectforkey:@"language"] andengtranslatorref:[defaults objectforkey:@"translator" ]];  }  - (nsinteger)tableview:(uitableview *)tableview  numberofrowsinsection:(nsinteger)section {     return self.datasource.count; } - (uitableviewcell *)tableview:(uitableview *)tableview          cellforrowatindexpath:(nsindexpath *)indexpath {     parenttableviewcell *cell = [self.tableview dequeuereusablecellwithidentifier:parentcellidentifier];     if (!cell) {         cell = [[parenttableviewcell alloc]                 initwithstyle:uitableviewcellstyledefault                 reuseidentifier:parentcellidentifier];     }         ayaah * ayaahobj = [self.datasource objectatindex:indexpath.row];        [self setsubtitleforcell:cell item:ayaahobj];         cell.backgroundview = [[uiimageview alloc] initwithimage:[ [uiimage imagenamed:@"gmii.jpg"] stretchableimagewithleftcapwidth:0.0 topcapheight:5.0] ];         [cell setneedsupdateconstraints];         [cell updateconstraintsifneeded];         [cell setneedslayout];         [cell layoutifneeded];         return cell; } - (void)setsubtitleforcell:(parenttableviewcell *)cell item:(ayaah *)item {     cell.arbilabel.font =df;     cell.englishlabel.font = df1;     cell.urdulabl.font=df1;     [cell.idlbl settext:item.ayaahid];     nsdecimalnumber *somenumber = [nsdecimalnumber decimalnumberwithstring:item.ayaahid];     nsnumberformatter *formatter = [[nsnumberformatter alloc] init];     nslocale *arlocale = [[nslocale alloc] initwithlocaleidentifier:@"ar"];     [formatter setlocale:arlocale];     nsstring *str=[nsstring stringwithformat:@"%@﴿%@﴾",item.ayaahtext,[formatter stringfromnumber:somenumber]];     [cell.arbilabel settext:str];     if(![[defaults objectforkey:@"language" ] isequaltostring:@"none"])     {         [cell.urdulabl settext:item.urdutranslationtext];         cell.urdulabl.textalignment=nstextalignmentright;         if (![[defaults objectforkey:@"translator" ] isequaltostring:@"none"])         {             [cell.englishlabel settext:item.englishtranslationtext];         }         else         {             [cell.englishlabel settext:@""];         }     }     else     {         if (![[defaults objectforkey:@"translator" ] isequaltostring:@"none"])         {             [cell.englishlabel settext:item.englishtranslationtext];             cell.englishlabel.textalignment=nstextalignmentleft;             [cell.urdulabl settext:@""];         }         else         {             [cell.englishlabel settext:@""];             [cell.urdulabl settext:@""];         }     } }  - (void)twofingerpinch:(uipinchgesturerecognizer *)recognizer {     if(recognizer.state==uigesturerecognizerstateended)     {         _tableview.transform=cg;             [self.tableview reloaddata];     }     else     {         pinchscale=0.0;       pinchscale = recognizer.scale;        // pinchscale = round(pinchscale * 1000) / 1000.0;     cgfloat fontsize = df.pointsize;      if (pinchscale < 1) {         if(fontsize>14)         {             _tableview.transform=cgaffinetransformmakescale(pinchscale, pinchscale);             pinchscale=.55;         df=[uifont fontwithname:[defaults objectforkey:@"fontstyle"] size:(cgfloat)[[defaults objectforkey:@"font"] floatvalue] - pinchscale];             df1=[uifont systemfontofsize:(cgfloat)[[defaults objectforkey:@"font"] floatvalue] - pinchscale];             cgfloat fontsize = df.pointsize;             [defaults setobject:[nsstring stringwithformat:@"%.0f", fontsize] forkey:@"font"];         }     }     else if(pinchscale>1){     if(fontsize<60&&fontsize>=13)         {             _tableview.transform=cgaffinetransformmakescale(pinchscale, pinchscale);             pinchscale=pinchscale/3;           df=[uifont fontwithname:[defaults objectforkey:@"fontstyle"] size:(cgfloat)[[defaults objectforkey:@"font"] floatvalue] + pinchscale];             df1=[uifont systemfontofsize:(cgfloat)[[defaults objectforkey:@"font"] floatvalue] + pinchscale];             cgfloat fontsize = df.pointsize;             [defaults setobject:[nsstring stringwithformat:@"%.0f", fontsize] forkey:@"font"];         }     }        // [fontsize r];     }     // } - (nsinteger)numberofsectionsintableview:(uitableview *)tableview{     return 1; }  - (nsarray *)sectionindextitlesfortableview:(uitableview *)tableview {     return header; } - (nsinteger)tableview:(uitableview *)tableview sectionforsectionindextitle:(nsstring *)title atindex:(nsinteger)index {     (int = 0; i< index; i++) {         ayaah * ayaahobj = [datasource objectatindex:i];         nsstring *letterstring =ayaahobj.ayaahid ;         if ([letterstring isequaltostring:title]) {             [tableview scrolltorowatindexpath:[nsindexpath indexpathforrow:index insection:0] atscrollposition:uitableviewscrollpositiontop animated:yes];             break;         }     }     return -1; } @end 

**its consuming 100mb 200mb when font size 15 , when enter code here m inenter code herecreasing font size 15 45 or 60 app crash , memory shoot 200mb 400mb+ , message display app crash due memory management. using custom cell have 3 labels **


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -