2013-05-31 4 views
5

में मेमोरी समस्या मैं यूआईवीविगेशन कंट्रोलर को रूट व्यू कंट्रोलर के रूप में उपयोग कर रहा हूं। मैं एआरसी के तहत आईफोन एआरसी और स्क्लाइट ऑपरेशंस में नया हूं।एआरसी

  1. मेरा रूटव्यू कंट्रोलर लॉगिनव्यू कंट्रोलर अगला है होमव्यू जिसमें इसमें 4 UIviewcontroller के साथ scrollView शामिल है।
  2. मैं परीक्षण करने के लिए इंस्ट्रूमेंट्स का उपयोग कर रहा हूं क्योंकि मुझे स्मृति चेतावनी मिल रही है। लगभग 5-10 मिनट, जब मैं (इस मैं popToRootViewController उपयोग कर रहा हूँ के लिए) लॉगआउट के लिए मेरे एप्लिकेशन का उपयोग करने के लिए लॉग इन और फिर से जीते बाइट्स के बाद बढ़ रही है पर चला जाता है और जब मैं कॉल पेड़ की जांच -

    [NSObject(NSTreadPerformAdditions) performselectorOnMainThread:withObject:waituntilDone:] 
    

15,91 से पता चलता एमबी बाइट्स इस्तेमाल किया और यह निम्नलिखित चलता

मैं कर रहा हूँ भी SQLite संचालन कर रही है और उन ऑपरेशनों को करने की बात है, उसके चारों ओर

कहते हैं अगर (sqlite3_open ([[आत्म filepath] UTF8String], & dBObje ! कर सकते हैं enter image description here

कैसे: सीटी) = SQLITE_OK)

10 एमबी लाइव बाइट्स opendatabase, selectquery के लिए और अद्यतन

पहली बार मैं उपकरण का उपयोग कर मेरे ऐप का परीक्षण के लिए पता चलता है, यह निम्न से पता चला मैं अब इस स्मृति को जारी करता हूँ?

संपादित करें:

मैं पुन: प्राप्त करने डेटा

-(int)CheckCompanyIsAvailableInTradeList:(NSString *)CompanyId UserId:(NSString *)userId 
{ 
int check=0; 
if(sqlite3_open([[self filePath] UTF8String], &dBObject) == SQLITE_OK) { 
    NSString *sqlStatement =NULL; 
    sqlStatement = [ NSString stringWithFormat:@"SELECT COUNT(*) FROM tradelist WHERE compnyID = '%@' and UserMasterID ='%@' ;",CompanyId,userId]; 

    if(sqlite3_prepare_v2(dBObject, [sqlStatement UTF8String], -1, &statement, NULL) == SQLITE_OK) { 
     @autoreleasepool { 
      while(sqlite3_step(statement) == SQLITE_ROW) { 
       check = sqlite3_column_int(statement, 0); 

      } 
     } 



    } 
    sqlite3_finalize(statement); 

} 
sqlite3_close(dBObject); 
return check; 

} 

जब भी इस विधि को लाइव बाइट्स बुलाया बढ़ती लगातार

+0

क्या आप डीबी पर ऑपरेशन पूरा करने के बाद 'sqlite3_close (dbObject) 'को कॉल कर रहे हैं? – Amar

+0

उत्तर के लिए धन्यवाद हाँ मैंने यह किया है – the1pawan

+0

क्या आप अपने प्रश्न में फ़ंक्शन कोड जोड़ सकते हैं? – Amar

उत्तर

2

इस प्रयास करें पर चला जाता है है के लिए इस कोड का उपयोग कर रहा हूँ,

इससे पहले कि आप अपने पाश आप डेटाबेस को खोलने के लिए है ...

और पूरा आप अपने डेटाबेस को बंद करने के लिए है के बाद ..

उदा शुरू

-(void)downloadData 
{ 
[self openDB];// database is open.. 

// start your loop 
for (int i=0; i<[array count]; i++) 
{ 
    [self executeInsertQuery]; 

} 

[self closeDb]; 
} 


-(void)openDB 
{ 
if(sqlite3_open([[self filePath]UTF8String],&dBObject)!= SQLITE_OK) 
{ 
    sqlite3_close(dBObject); 
} 

} 


-(void)closeDb 
{ 
if (dBObject) 
{ 

    int rc = sqlite3_close(dBObject); 
    NSLog(@"close rc=%d", rc); 

    if (rc == SQLITE_BUSY) 
    { 

     sqlite3_stmt *stmt; 
     while ((stmt = sqlite3_next_stmt(dBObject, 0x00)) != 0) 
     { 
      NSLog(@"finalizing stmt"); 
      sqlite3_finalize(stmt); 
     } 

     rc = sqlite3_close(dBObject); 
    } 

    if (rc != SQLITE_OK) 
    { 
     NSLog(@"close not OK. rc=%d", rc); 
    } 

    dBObject = NULL; 
} 

} 

    -(Bool)executeInsertQuery 
{ 


    NSString* strQuery=[NSString stringWithFormat: @"Insert into list(compnyID,UserMasterID) values('%@','%@');",companyId ,userId ]; 

char *err; 
if (sqlite3_exec(dBObject, [queryString UTF8String], NULL,NULL, &err)!= SQLITE_OK) 
{ 
    sqlite3_close(dBObject); 
    return NO; 
} 
else 
{ 
    return YES; 
} 


} 
+0

जो मेरे लिए काम कर रहा है .. धन्यवाद, इस वजह से मुझे बहुत सी सिरदर्द थी – the1pawan