Ios UITableView滚动时内存不断增加
有一个我从未遇到过的奇怪问题 有一个数组(),其中包含一些由JSONKit解析的名为MyClass的自定义对象 当我不断滚动tableview时,内存也会不断增加 但是什么时候替换呢Ios UITableView滚动时内存不断增加,ios,uitableview,memory,Ios,Uitableview,Memory,有一个我从未遇到过的奇怪问题 有一个数组(),其中包含一些由JSONKit解析的名为MyClass的自定义对象 当我不断滚动tableview时,内存也会不断增加 但是什么时候替换呢 cell.textLabel.text = myclass.name; 与 或 内存保持稳定没问题 但是如果我使用 cell.textLabel.text = [NSString stringWithFormate:@"a-%@-i",myclass.name, indexPath.row]; 也在不断增加,
cell.textLabel.text = myclass.name;
与
或
内存保持稳定没问题
但是如果我使用
cell.textLabel.text = [NSString stringWithFormate:@"a-%@-i",myclass.name, indexPath.row];
也在不断增加,
这会让我发疯的
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"Singers";
OMTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
MyClass *myclass = [self.data objectAtIndex:indexPath.row];
if (cell == nil){
cell = [[[OMTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];
}
cell.textLabel.text = myclass.name;
return cell;
}
我的班级
有两个类,一个是基类,另一个是继承类
基数:
继承:
#import "OMBase.h"
@interface OMLyric : OMBase
- (NSString *)songid;
- (NSString *)content;
#import "OMLyric.h"
@implementation OMLyric
- (NSString *)songid{
return [data objectForKey:@"songid"];
}
- (NSString *)content{
return [data objectForKey:@"content"];
}
似乎您的
myclass.name
getter返回一个新分配的对象。如果您使用cell.textlab.text=((myclass*)self.data[indexPath.row]).name,那么如果您不查看myclass
,我们就无法说更多了
而不是cell.textlab.text=myclass.name代码>?你在-(NSString*)getName中写了什么?是的,它仍然在增加@markonikolovski它增加了多少?再放一些代码,确保您使用的是设备而不是模拟器进行评测。@Tarek我使用的是设备~:),并且在所有单元格显示一次之前,它一直在增加
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"Singers";
OMTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
MyClass *myclass = [self.data objectAtIndex:indexPath.row];
if (cell == nil){
cell = [[[OMTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];
}
cell.textLabel.text = myclass.name;
return cell;
}
@interface OMBase : NSObject {
NSMutableDictionary *data;
NSString *name;
NSArray *keys;
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, copy) NSMutableDictionary *data;
@implementation OMBase
@synthesize data, name;
- (void)setData:(NSMutableDictionary *)adata{
if (data){
[data release];
data = nil;
}
data = [adata mutableCopy];
}
- (void)dealloc{
if (keys){
[keys release];
}
[data release];
[super dealloc];
}
- (id)init{
if (self = [super init]){
self.data = [[[NSMutableDictionary alloc] initWithCapacity:20] autorelease];
}
return self;
}
#import "OMBase.h"
@interface OMLyric : OMBase
- (NSString *)songid;
- (NSString *)content;
#import "OMLyric.h"
@implementation OMLyric
- (NSString *)songid{
return [data objectForKey:@"songid"];
}
- (NSString *)content{
return [data objectForKey:@"content"];
}