Je veux créer une classe pour gérer tout le travail de connexion HTTP pour les autres classes (afin d'éviter d'écrire des codes à plusieurs reprises). Je l'appelle ConnectionCenter (sous-classe de NSObject) et ajouter les codes suivants à ce:Comment configurer une connexion HTTP dans une classe spéciale?
-(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];
}
et d'autres classes appelle en passant une URL et un objet de ConnectionCenter. Mais la méthode 'didReceiveData' dans ConnectionCenter n'est pas appelée. Des idées sur quel est le problème avec ça?
Pourquoi cette méthode connect: accepte-t-elle un ConnectionCenter dans son second argument? N'est-ce pas une méthode de ConnectionCenter? Si oui, pourquoi passez-vous l'objet à lui-même, alors qu'il pourrait simplement se référer à lui-même de façon normale ('self')? –
Je fais ce changement parce que la façon normale «moi» ne fonctionne pas. Si cela ne fonctionne toujours pas, je vais revenir en arrière. –
Merci. Je change le délégué en 'soi' et cela fonctionne. –