Утечка памяти с SQLite3 и NSDictionary в пределах класса наследования? - PullRequest
1 голос
/ 17 декабря 2011

У меня есть 3 класса в этом приложении.

Утечка памяти произошла в DetailBrand2.m, DetailBrand2, унаследованный от DetailType, Также у меня есть класс-оболочка FairPriceDatabaseView, который взаимодействует с sqlite3.

Я перепутал с NSDictionary, NSString и Sqlite?

В этой строке произошла утечка !!!?

NSDictionary * brandRow = [fairPrice_DB getProductRow: tempProductID];

NSString * message = [brandRow objectForKey: @ "brandName"];

brandRow = ноль;

Я только что начал в приложении iphone, заранее благодарен за любую помощь, я прочитал много руководств по управлению памятью iphone, но не могу решить это. Проблема в том, что я не использовал ни одно из ключевых слов, похожих на alloc, retain, copy или mutablecopy, но у меня есть утечка в этой строке !!

Эта строка возвращает NSDictionary, который содержит productID, productName, brandName, price. из класса-оболочки, fairPrice_DB является экземпляром FairPriceDatabaseView.

DetailBrand2.h

@interface DetailBrand2 : DetailType
{
    NSString * topBrandName;
    NSNumber * tempProductID;
    NSString * brandName;
}
@property (nonatomic, retain) NSString * topBrandName;
@property (nonatomic, retain) NSString * brandName;
@property (nonatomic, retain) NSNumber * tempProductID;

-(void) loadbrandName;

@end

DetailBrand2.m

#import "DetailBrand2.h"
#import "SeventhFairPriceAppDelegate.h"

@implementation DetailBrand2

@synthesize topBrandName,brandName,tempProductID;

-(void) loadbrandName
{
    if(!topBrandName)
    {
        [self loadDB];
        *NSDictionary * brandRow = [fairPrice_DB getProductRow:tempProductID];*
        NSString *message = [brandRow objectForKey:@"brandName"];
        brandRow = nil;
        self.topBrandName = message;
//        self.brandName =  self.topBrandName;
    }
}

1 Ответ

0 голосов
/ 20 декабря 2011

Проблема решена перезаписью метода dealloc: D

DetailBrands.m

 -(void) dealloc
    {
          [self.tempProductID release];
          [self.topBrandName release];
          [self.brandName release];
          [super dealloc];
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...