我正在开发使用许多照片的应用程序,所以当我发布图像时肯定会崩溃,因为某些部分显示在下面的代码中
-(void)addScrollView{
[self selectData];
scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(5, 0, 300, 160)];
int counter=10;
float y=10.0f;
int fullLength=[photoArray count];
int horizontal=(fullLength/2)*80;
int vertical=160;
int c1=1;
for(int c=0;c<[photoArray count];c++){
PhotoData *d=[photoArray objectAtIndex:c];
//NSLog(d.photoPath);
if(c==fullLength/2 &&c1<3){
counter=10;
y=y+80.0f;
c1++;
}
UIImage *img1=[[UIImage alloc]initWithContentsOfFile:d.photoPath];
UIButton* button = [[UIButton alloc] init];
[button setTitle:@"Delete" forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
button.tag=d.photoId;
//set the button states you want the image to show up for
[button setBackgroundImage:img1 forState:UIControlStateNormal];
[button setFrame:CGRectMake(counter, y, 70.0, 70.0)];
//create the touch event target, i am calling the 'productImagePressed' method
[button addTarget:self action:@selector(deleteImage:)
forControlEvents:UIControlEventTouchUpInside];
[scrollView addSubview:button];
counter=counter+80.0f;
[img1 release];
[button release];
}
[scrollView setContentSize:CGSizeMake(horizontal, vertical)];
[self.view addSubview:scrollView];
[scrollView release];
}
也没有调用Dealloc因为我使用的是基于tabb的应用程序。 所以请帮助解决这个内存管理问题。
答案 0 :(得分:2)
唯一的问题是你提到的 - 你可能有太多的图像或对象被加载。在这种情况下,您可能希望将一些数据保存到幕后的文件中,并根据需要进行提取。也许不是将所有对象存储在photoArray中,而是写入文件(您甚至可以只将文件路径写入文件)并一次批量加载十个左右,而不是全部。如果没有更多信息,我可以说的更多。