gpt4 book ai didi

iphone - 在 UIAlertView 中将 ASIHTTPRequest 与 UIProgressView 结合使用

转载 作者:行者123 更新时间:2023-12-03 21:08:57 25 4
gpt4 key购买 nike

我已经成功addSubview:将 UIProgressView 放入 UIAlertView 中/上,并设置 ASIHTTPRequest 的所有内容,但无论我将 [request startSynchronous]; 放在哪里,它会使应用程序崩溃。

[request startAsynchronous];也没有帮助。

谢谢。

这是我到目前为止所拥有的;

有一个检查可以检查文件是否存在等,这是可行的,但为了解决这个问题,我已将其删除。

-(IBAction) update {
// define everything.
NSString *script;
script = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/myfile.txt"];

NSURL *url = @"http://example.com/myfile.txt";

UIAlertView *progressAlert = [[UIAlertView alloc] initWithTitle: @"Updating..." message: @"Please wait..." delegate: self cancelButtonTitle: nil otherButtonTitles: nil];

progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(30.0f, 80.0f, 225.0f, 90.0f)];
[progressAlert addSubview:progressView];
[progressView setProgressViewStyle: UIProgressViewStyleBar];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:script];
[request setDownloadProgressDelegate:progressView];
[progressAlert show];
[progressAlert release];
[request startSynchronous];
[progressAlert dismissWithClickedButtonIndex:0 animated:YES];
}

调用堆栈;

#0  0x010cda44 in CFURLCopyAbsoluteURL
#1 0x00cee0f4 in HTTPMessage::initialize
#2 0x00cee018 in CFHTTPMessageCreateRequest
#3 0x00016d91 in -[ASIHTTPRequest main] at ASIHTTPRequest.m:855
#4 0x000859a6 in __NSThreadPerformPerform
#5 0x0119a01f in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
#6 0x010f828b in __CFRunLoopDoSources0
#7 0x010f7786 in __CFRunLoopRun
#8 0x010f7240 in CFRunLoopRunSpecific
#9 0x010fa504 in CFRunLoopRun
#10 0x0001ae30 in +[ASIHTTPRequest runRequests] at ASIHTTPRequest.m:4286
#11 0x00070d4c in -[NSThread main]
#12 0x00070cd8 in __NSThread__main__
#13 0x9319785d in _pthread_start
#14 0x931976e2 in thread_start

3:request = CFHTTPMessageCreateRequest(kCFAllocatorDefault, (CFStringRef)[self requestMethod], (CFURLRef)[self url], [self useHTTPVersionOne] ? kCFHTTPVersion1_0 : kCFHTTPVersion1_1);

10:CFRunLoopRun();

最佳答案

如果没有调用堆栈,很难说出确切的问题是什么。

但是这段代码可能令人担忧:

    [progressAlert release];
[request startSynchronous];
[progressAlert dismissWithClickedButtonIndex:0 animated:YES];

“release”调用应移至dismissWithClickedButtonIndex 之后。不过我认为这不太可能是崩溃的原因。

我现在看到问题已经发布了堆栈转储:

NSURL *url = @"http://example.com/myfile.txt";

应该是:

NSURL *url = [NSURL URLWithString:@"http://example.com/myfile.txt"];

说实话,我很惊讶编译器没有就此发出警告。

关于iphone - 在 UIAlertView 中将 ASIHTTPRequest 与 UIProgressView 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4602061/

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