gpt4 book ai didi

iphone - 继承类中 SQLite3 和 NSDictionary 的内存泄漏?

转载 作者:行者123 更新时间:2023-11-28 17:40:03 24 4
gpt4 key购买 nike

我在这个应用程序中有 3 个类。

内存泄漏发生在 DetailBrand2.m ,DetailBrand2继承自DetailType,我还有一个包装类,FairPriceDatabaseView,它与 sqlite3 通信。

我混淆了 NSDictionary、NSString 和 Sqlite?

泄漏发生在这条线上!!!?

NSDictionary * brandRow = [fairPrice_DB getProductRow:tempProductID];

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

品牌行=无;

我刚刚开始使用 iphone appmication,我提前感谢任何帮助,我已经阅读了很多 iphone 内存管理指南,但我无法解决它。问题是我没有使用任何看起来像 alloc、retain、copy 或 mutablecopy 的关键字,但我在这一行中有泄漏!!

此行带回一个包含 productID、productName、brandName、price 的 NSDictionary。来自包装类,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;
}
}

最佳答案

问题通过重写 dealloc 方法解决了 :D

DetailBrands.m

 -(void) dealloc
{
[self.tempProductID release];
[self.topBrandName release];
[self.brandName release];
[super dealloc];
}

关于iphone - 继承类中 SQLite3 和 NSDictionary 的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8546847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com