En exécutant mon application macOS dans macOS 10.13, je vois imprimé dans la console :
La planification du chargeur NSURLDownload n'est plus prise en charge.
Que signifie cela ?
En exécutant mon application macOS dans macOS 10.13, je vois imprimé dans la console :
La planification du chargeur NSURLDownload n'est plus prise en charge.
Que signifie cela ?
Il semble signifier Vous venez de créer une instance de la classe dépréciée NSURLDownload.
Pour le montrer, créez un nouveau projet d'outil en ligne de commande Cocoa dans Xcode et remplacez le code dans main.m par le suivant :
#import
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL* url = [[NSURL alloc] initWithString:@"https://example.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:30.0];
NSLog(@"Affichera une phrase étrange dans la console") ;
[[NSURLDownload alloc] initWithRequest:request
delegate:nil];
NSLog(@"A affiché une phrase étrange dans la console") ;
}
return 0;
}
Compilez et exécutez. J'obtiens le résultat suivant dans la console (horodatages supprimés) :
Affichera une phrase étrange dans la console :
La planification du chargeur NSURLDownload n'est plus supportée.
A affiché une phrase étrange dans la console
Je dirais que la "solution" est de remplacer le NSURLDownload déprécié par NSURLSession.
Vous pouvez le corriger directement dans le code source de Sparkle. Mettez à jour le fichier SUAppcast.m à la ligne 82 en remplaçant NSURLDownload par ce qui suit :
NSURLSessionDownloadTask *downloadTask = [[NSURLSession sharedSession] downloadTaskWithRequest:request completionHandler:^(NSURL *location, __unused NSURLResponse *response, NSError *error) {
if (location) {
NSString *destinationFilename = NSTemporaryDirectory();
if (destinationFilename) {
// Le fichier ne persistera pas s'il n'est pas déplacé, Sparkle le retirera plus tard.
destinationFilename = [destinationFilename stringByAppendingPathComponent:@"Appcast.xml"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *anError = nil;
NSString *fromPath = [location path];
if ([fileManager fileExistsAtPath:destinationFilename])
[fileManager removeItemAtPath:destinationFilename error:&anError];
BOOL fileCopied = [fileManager moveItemAtPath:fromPath toPath:destinationFilename error:&anError];
if (fileCopied == NO) {
[self reportError:anError];
} else {
self.downloadFilename = destinationFilename;
dispatch_async(dispatch_get_main_queue(), ^{
[self downloadDidFinish:[[NSURLDownload alloc] init]];
});
}
}
} else {
[self reportError:error];
}
}];
[downloadTask resume];
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.