Ich möchte eine Klasse erstellen, um alle HTTP-Verbindungsarbeit für andere Klassen zu behandeln (um zu vermeiden, Codes wiederholt zu schreiben). Ich nenne es ConnectionCenter (Unterklasse von NSObject) und fügen Sie die folgenden Codes, um es:Wie wird eine HTTP-Verbindung in einer speziellen Klasse eingerichtet?
-(void)connect:(NSString *)strURL obj:(ConnectCenter *)objConnect
{
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:strURL]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:objConnect];
if (theConnection)
{
// receivedData is declared as a method instance elsewhere
receivedData = [[NSMutableData data] retain];
}
else
{
// inform the user that the download could not be made
}
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
// append the new data to the receivedData
// receivedData is declared as a method instance elsewhere
[receivedData appendData:data];
}
Und andere Klassen nennen es durch eine URL übergeben und ein Objekt von ConnectionCenter. Aber die Methode 'didReceiveData' im ConnectionCenter wird nicht aufgerufen. Irgendwelche Ideen über was ist das Problem damit?
Warum akzeptiert connect: method ein ConnectionCenter in seinem zweiten Argument? Ist das nicht eine Methode von ConnectionCenter? Wenn ja, warum übergibst du das Objekt an sich selbst, wenn es sich einfach auf sich selbst beziehen könnte ("self")? –
Ich mache diese Änderung, weil der normale Weg "Selbst" nicht funktioniert. Wenn das immer noch nicht funktioniert, wechsle ich zurück. –
Danke. Ich ändere den Delegierten zurück zu "selbst" und es funktioniert. –