lorsque cette méthode basée sur un objectif c appelle dans Simulator, peu importe… .. Mais dans un véritable appareil iPhone, elle se produit Thread 1: signal SIGABRT
warning: could not execute support code to read Objective-C class data in the process. This may reduce the quality of type information available.
voici le code
+ (NSData *)aesDecrypt:(NSURL *)url :(NSString *)key {
NSData *data = [NSData dataWithContentsOfURL: url];
if (data == nil) {
NSLog(@"file not found");
return nil;
}
char keyPtr[kCCKeySizeAES128];
bzero(keyPtr, sizeof(keyPtr));
[key getCString:keyPtr maxLength:sizeof(keyPtr)];
size_t bufferSize = [data length] + kCCBlockSizeAES128;
size_t decryptedBytesSize = 0;
void *buffer = malloc(bufferSize);
CCCryptorStatus result = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding, keyPtr, kCCKeySizeAES128, keyPtr, [data bytes],
[data length], buffer, bufferSize, &decryptedBytesSize);
NSData *decrypted = [NSData dataWithBytes:buffer length:bufferSize];
NSError *error;
if (kCCSuccess != result) {
NSLog(@"aes decrypt error");
return nil;
}
return decrypted;
}
J'ai essayé de corriger ce code de plusieurs types.
Tous mes essais ne peuvent pas résoudre les problèmes: pas de problème dans Simulator, la mort dans un appareil réel - iPhone 6 avec iOS 11.3.1
EDIT) joindre la capture d'écran: Autres drapeaux de l'éditeur de liens
J'ai eu le même message d'erreur et l'ai tracé jusqu'à ma déclaration de tableau:
private var boundaries = [CLLocationCoordinate2D]()
J'ai modifié la déclaration pour déclarer explicitement les limites en tant que tableau CLLocationCoordinate2D comme ceci:
private var boundaries:[CLLocationCoordinate2D] = [CLLocationCoordinate2D]()
Cette déclaration a réduit au silence le message d'erreur.
Dans votre cas, vous utilisez une ancienne méthode c, malloc pour votre tampon au lieu de laisser Swift gérer votre mémoire, alors peut-être que le problème Ou éventuellement si vous déclariez explicitement déchiffré en tant que tableau prenant en charge le problème.
Il y a peut-être un problème de liaison avec le code Objective C.
Essayez l'une des solutions suivantes: