我已經完成了的指示。我爲測試目的創建了一個控制檯項目。然後我創建了一個名爲RequestSender的類(請參閱下面的代碼),並在主函數中創建了此類的一個實例。爲什麼我的NSURLConnection委託方法不被調用?
RequestSender.h:
#import <Foundation/Foundation.h>
@interface RequestSender : NSObject <NSURLConnectionDelegate> {
NSMutableData* d;
}
@end
RequestSender.m:
#import "RequestSender.h"
@implementation RequestSender
- (id)init {
self = [super init];
if (self) {
NSString* s = @"http://www.apple.com/";
NSURL* u = [[NSURL alloc] initWithString:s];
NSURLRequest* r = [[NSURLRequest alloc] initWithURL:u];
NSURLConnection* c = [[NSURLConnection alloc] initWithRequest:r delegate:self];
if (c) {
d = [NSMutableData data];
}
return self;
} else {
return nil;
}
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[d setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[d appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
}
@end
這無疑將在主線程和默認的運行循環中執行。然而,非授權方法被調用。
我做了很多測試並閱讀了很多帖子,但我仍然沒有線索。
請幫幫我。這讓我發瘋。 Thanx!
你的代碼看起來還好。你怎麼稱呼它?它是如何嵌入你的應用程序? – Codo
你的代碼是絕對正確的。檢查自己是否爲空? –
@代碼:它不在我的應用程序中。我創建了一個控制檯項目來測試它。所有文件都在上面列出。唯一額外的代碼在主函數中,如「RequestSender * rs = [[RequestSender alloc] init];」。我在每個代表團方法中添加了斷點,但沒有一個被捕獲。 –