come ottengo l'URL all'interno del seguente metodo ??NSURLConnection ottenga l'URL
- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection
come ottengo l'URL all'interno del seguente metodo ??NSURLConnection ottenga l'URL
- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection
È dovrebbe essere in grado di fare theConnection.request.URL
, ma non si può. Fastidioso, non è vero?
Il modo più semplice è quello di salvare l'URL (o l'intera NSURLRequest) che si stava caricando. Se si utilizzano più connessioni, è possibile memorizzarle in un dizionario. Si noti che -[NSMutableDictionary setObject:forKey:]
copia chiavi e NSURLConnections non sono copiabili; la soluzione è quella di utilizzare CFDictionarySetValue invece:
CFDictionarySetValue((CFMutableDictionaryRef)dict, connection, request);
È possibile ottenere URL come questo
- (void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error
{
// release the connection, and the data object
[connection release];
// receivedData is declared as a method instance elsewhere
[receivedData release];
// inform the user
NSLog(@"Connection failed! Error - %@ %@",
[error localizedDescription],
[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}
Per ulteriori informazioni, si van leggere here.
Ovviamente le risposte di cui sopra funzionano e sto cercando una soluzione simile.
Appena rilevato che NSLog ([descrizione connessione]); stampe qualcosa di simile:
< NSURLConnection: 0x9129520, http://google.com>
Quindi è possibile analizzare la stringa restituita da [descrizione del collegamento], e ottenere l'URL dal collegamento, anche se è sorta di sporco.
Questo non funzionerà più in iOS 5; puoi usare la richiesta corrente di NSURLConnection invece –
@MihaiDamian conosci qualcosa di acquistabile per iOS5. Il mio programma funzionava alla grande fino a quando ho aggiornato iOS5 ora ho bisogno di un altro modo per ottenere l'url da NSURLConnection – MikeIsrael
** Never ** contare sull'output di '-description' per una classe a meno che non sia specificamente documentato per utilizzare un particolare formato –
Ecco il mio suggerimento
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
self.rssFeedConnection = nil;
NSLog(@"connectionDidFinishLoading url : %@ ", connection.originalRequest.URL);
}
Ehi c'è un commento da Mihai Damian che ha funzionato per me:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSURL *myURL = [[connection currentRequest] URL];
Acclamazioni
non funziona in 4.3 –
Su MAC OS X è stato aggiunto solo in 10.8 quindi non funzionerà nemmeno per 10.7. Aggiungendo il perché sono stato reindirizzato a questa domanda mentre cercavo OSX non per iOS per il quale è stata posta questa domanda. – PnotNP
funziona con iOS 5.0 e successivi – Daniel
In Swift 2.0 iOS 9 si può fare come:
func connectionDidFinishDownloading(connection: NSURLConnection, destinationURL: NSURL) {
print(connection.currentRequest.URL!)
}
ok ... grazie ... t c ... – Rony