title: iPhone memory leak because of stringWithUTF8String
body: <p>i have the following code which shows memory leak for object favorite near the statement with stringWithUTF8String.</p>
  
  <p>i have declared favorites in the property</p>
  
  <pre><code>-(NSMutableArray *) readFavoritesFromDatabase 
  {
   // Check if database is present
   [self setDatabaseNameAndPath];
   [self checkAndCreateDatabase];
  
   // Setup the database object
   sqlite3 *database;
  
   //Initialize favorites array
   if (favorites == nil) 
   {
    [favorites release];
    favorites = [[NSMutableArray alloc] init];
   }
   else 
   {
    favorites = nil;
    [favorites removeAllObjects];
   }
  
  
   // Open the database from the users file system
   if(sqlite3_open([self.dataBasePath UTF8String], &amp;database) == SQLITE_OK) 
   {
    // Setup the SQL Statement and compile it for faster access
    const char *sqlStatement = "select * from Favorites";
    sqlite3_stmt *compiledStatement;
  
    if(sqlite3_prepare_v2(database, sqlStatement, -1, &amp;compiledStatement, NULL) == SQLITE_OK) 
    {
  
     // Loop through the results and add them to the favorites array
     while(sqlite3_step(compiledStatement) == SQLITE_ROW) 
     {
      // Create Favorite object and add it to the Favorite array
      Favorite *favorite = [[[Favorite alloc] init] autorelease];
  
      favorite.cameraID = [NSString stringWithUTF8String:(const char*)sqlite3_column_text(compiledStatement, 0)];
      favorite.cameraName = [NSString stringWithUTF8String:(const char*)sqlite3_column_text(compiledStatement, 1)];
      favorite.cameraLink = [NSString stringWithUTF8String:(const char*)sqlite3_column_text(compiledStatement, 2)];
  
      [self.favorites addObject:favorite];
      //[favorite.cameraID release];
  //    [favorite.cameraName release];
  //    [favorite.cameraLink release];
     }
  
     // If favorite cameras exists in database, then sort the Favorites array 
     if([self.favorites count]&gt;0)
     {
  
      NSSortDescriptor *favoritesNameSorter = [[NSSortDescriptor alloc] initWithKey:@"cameraName" ascending:YES];
      [self.favorites sortUsingDescriptors:[NSArray arrayWithObject:favoritesNameSorter]];
      [favoritesNameSorter release];
     }
    }
  
    // Release the compiled statement from memory
    sqlite3_finalize(compiledStatement);
   }
  
   // Close the database
   if(database !=nil)
   {
    sqlite3_close(database);
    return self.favorites;
   }
   else 
   {
    return nil;
   }
  }
  </code></pre>
  
  <p>Please let me know how to solve this memory leak problem
  Thanks in advance.</p>