2012-01-04 60 views
0

我写了一个fetchAllFromDatabase从我的db中获取数据。 的代码是:从sqlite中获取数据时发生内存泄漏

if ([tableName isEqualToString:kFavouriteStoresList]) { 
        NSMutableDictionary *dictFavStoreDetails = [[NSMutableDictionary alloc] init]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,0)] forKey:kFavouriteStoresList_ZipCode]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,1)] forKey:kFavouriteStoresList_StoreNumber]; // Leaking Memory 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,2)] forKey:kFavouriteStoresList_Address]; // memory leak 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,3)] forKey:kFavouriteStoresList_StoreName]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,4)] forKey:kFavouriteStoresList_City]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,5)] forKey:kFavouriteStoresList_State]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,6)] forKey:kFavouriteStoresList_Phone]; // Memory leak 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,7)] forKey:kFavouriteStoresList_Latitude]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,8)] forKey:kFavouriteStoresList_Longitude]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,9)] forKey:kFavouriteStoresList_sHrsMonToThu]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,10)] forKey:kFavouriteStoresList_sHrsFri]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,11)] forKey:kFavouriteStoresList_sHrsSat]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,12)] forKey:kFavouriteStoresList_sHrsSun]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,13)] forKey:kFavouriteStoresList_pHrsMonToThu]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,14)] forKey:kFavouriteStoresList_pHrsFri]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,15)] forKey:kFavouriteStoresList_pHrsSat]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,16)] forKey:kFavouriteStoresList_pHrsSun]; 
        [dictFavStoreDetails setObject:[NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement,17)] forKey:kFavouriteStoresList_StoreServicesList]; 

        [tempFetchArray addObject:dictFavStoreDetails]; 
        [dictFavStoreDetails release]; 
        dictFavStoreDetails = nil; 
       } 

在这里,我对3个系得到一个内存泄漏(见在此定义3行的内存泄漏的评论)。谁能告诉我为什么会发生这种情况

回答

0

你使用静态分析仪吗?如果案件仔细查看信息,有时泄漏不会放在正确的线路上。