2012-05-11 2 views
1

Я пишу немного статическую библиотеку (lib.a) для Iphone и я использую ASIHTTPRequest управлять моей проводкой данных и т.д.ASIHTTPRequest requestFinished не называется

У меня есть основная реализация (@implementation BlaBla), но в основном файле .m, у меня есть другой (@interface Foo) и (@implementation Foo) для частных методов.

Я реализовал ASIHTTPRequestDelegate в (@interface Foo), но запрос - (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 

Я буду очень благодарен за любую помощь!

BTW, это может быть из-за методов экземпляра (-) или методов класса (+)?

ответ

1

вы называете себя от метода класса, ваш код должен нравится:

@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 
+0

К сожалению, он все еще не работает ... :( –

+1

, потому что запрос не удался, и вы не выполнили запрос запроса ((void) requestFailed: (ASIHTTPRequest *) ... – CarlJ

+0

YEAHHHH YOU A RIGHT !!!!!! !!! БОЛЬШОЕ СПАСИБО!!!!!!!! –

0

Если это не будет:

BlaRequest.delegate = self; 

Вместо:

self = [BlaRequest delegate]; 
+0

Я попытался это раньше, но он не работает ...: -/ –

+0

Ну, но должно быть так. – Peres

+0

Да, я знаю, я забыл изменить его, прежде чем я разместил его ... –

Смежные вопросы