我正在使用asihhtp请求在ios中提出多个图像上传请求,以便将图像提交给服务器。但是由于进度条,我的应用程序总是崩溃。这是我的代码
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:urlStr]];
[request appendPostData:postData];
[request setTag:[[dic objectForKey:@"unique"] integerValue]];
[request setDelegate:self];
[request setUploadProgressDelegate:cell.mProgressBar];
[request setDidFailSelector:@selector(requestFail:)];
[request setDidFinishSelector:@selector(requestDone:)];
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Content-Type" value:@"text/plain"];
[request setShouldContinueWhenAppEntersBackground:YES];
//[myQueue addOperation:request];
[appDelegate window].userInteractionEnabled = NO;
[request startAsynchronous];
我有自定义单元格,其中我有进度条和标签,所以一旦进程完成,我隐藏条形并显示已完成的标签。
当用户滚动表应用程序崩溃用于进度栏时出现问题
崩溃输出
> -[UIProgressView respondsToSelector:]: message sent to deallocated instance 0x10d210c0
自定义单元代码
#import <UIKit/UIKit.h>
@interface CustomProgressBar : UITableViewCell
{
}
@property (retain, nonatomic) IBOutlet UILabel *mlblCompllrtrlbl;
@property (retain, nonatomic) IBOutlet UIProgressView *mProgressBar;
@property (retain, nonatomic) IBOutlet UIImageView *mCellImafge;
@end
自定义单元代码
#import "CustomProgressBar.h"
@implementation CustomProgressBar
@synthesize mlblCompllrtrlbl;
@synthesize mProgressBar;
@synthesize mCellImafge;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)dealloc
{
[mCellImafge release];
[mlblCompllrtrlbl release];
[mProgressBar release];
[super dealloc];
}
@end
答案 0 :(得分:0)
您可能已在某处发布了progressview,因此请先删除该语句
[UIProgressView发布];
答案 1 :(得分:0)
表格单元格是自动释放的,所以每当你滚动表格时,就会发布progressview,你可能正试图访问该progessView的方法
答案 2 :(得分:0)
您的tableviewcell将在屏幕关闭时被释放或重复使用(取决于您如何设置重用标识符)。
您需要以某种方式跟踪您的请求,其方式与表格视图单元格无关。您可能需要一个单独的对象来表示存储在属于视图控制器的NSArray中的每个请求,或者属于与您希望请求具有相同生命周期的其他对象。