gpt4 book ai didi

objective-c - ASIHTTPRequest requestFinished 未调用

转载 作者:行者123 更新时间:2023-11-29 13:36:01 25 4
gpt4 key购买 nike

我正在为 iphone 编写一个小的静态库 (lib.a),我正在使用 ASIHTTPRequest 来管理我的数据发布等。

我有主要实现 (@implementation BlaBla),但在主 .m 文件中,我有另一个 (@interface Foo) 和 (@implementation Foo) 用于私有(private)方法。

我已经在 (@interface Foo) 中实现了 ASIHTTPRequestDelegate,但是 - (void)requestFinished:(ASIHTTPRequest *) 请求,但是这个方法没有执行!

无论我做什么,它都不起作用。我添加了 NSLog 来记录 requestFinished 方法,但它不起作用。

示例代码:

@interface  ActionsManager : NSObject <ASIHTTPRequestDelegate>


+ (void)blabla;


@end



@implementation ActionsManager


+ (void)blabla{

NSURL *requestUrl = [NSURL URLWithString:[NSString stringWithFormat:@"Bla.com/bla"]];

BlaRequest = [[[ASIFormDataRequest alloc] initWithURL:requestUrl]autorelease];

self = [BlaRequest delegate];
[BlaRequest setPostValue:blabla forKey:@"bla"];
[BlaRequest setRequestMethod:@"POST"];
[BlaRequest startAsynchronous];


}



- (void)requestFinished:(ASIHTTPRequest *)request{
NSLog(@"request finished");

}

- (void)requestStarted:(ASIHTTPRequest *)request{

NSLog(@"request started");

}


@end


@implementation MainImplementation



- (id)init
{
self = [super init];
if (self) {

}

return self;

}

+ (void)bbb{

[ActionsManager blabla];

}

@end

我将非常感谢任何帮助!

顺便说一句,会不会是因为实例方法(-)或类方法(+)?

最佳答案

你从一个类方法中调用自己,你的代码应该是这样的:

@interface  ActionsManager : NSObject <ASIHTTPRequestDelegate>
- (void)blabla;
@end

@implementation ActionsManager


- (void)blabla{

NSURL *requestUrl = [NSURL URLWithString:[NSString stringWithFormat:@"Bla.com/bla"]];

ASIFormDataRequest *blaRequest = [ASIFormDataRequest requestWithURL:requestUrl];

blaRequest.delegate = self;
[blaRequest setPostValue:@"blabla" forKey:@"bla"];
[blaRequest setRequestMethod:@"POST"];
[blaRequest startAsynchronous];


}



- (void)requestFinished:(ASIHTTPRequest *)request{
NSLog(@"request finished");

}

- (void)requestStarted:(ASIHTTPRequest *)request{

NSLog(@"request started");

}


@end


@implementation MainImplementation



- (id)init
{
self = [super init];
if (self) {

}

return self;

}

+ (ActionsManager *)bbb{

ActionsManager *a = [ActionsManager new];
[a blabla];
return [a autorelease];
}

@end

关于objective-c - ASIHTTPRequest requestFinished 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10547787/

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