Pointeur casting avec ARC
ARC est de me donner un moment difficile avec l'association suivante:
NSDictionary *attributes;
SecItemCopyMatching((__bridge CFDictionaryRef)keychainItemQuery, (CFTypeRef *)&attributes);
Erreur: Fonte d'un pointeur indirect à un Objectif-C pointeur 'CFTypeRef ' (aka 'const void *') n'est pas autorisé à l'ARC
Vous devez vous connecter pour publier un commentaire.
Le problème est que les attributs ne devrait pas être un dictionnaire, il doit être un SecKeyRef ou CFDataRef. Et puis jeté que de retour dans NSData pour le mot de passe des données copiées.
Comme suit:
Que nous faisions quelque chose de similaire des choses et à l'aide de l'exemple ci-dessus, nous avons été confrontés à un autre problème:
Cela entraînera une EXEC_BAD_ACCESS, parce que resultRef n'est pas réglé à une adresse et des points quelque part dans la mémoire.
Cela va corriger l'erreur.
SecItemCopyMatching
ne pas initialiser toutes les données pour son deuxième argument, comme il n'y a pas de données pour le retour). Vous ne devez pas faire n'importe quoi avecresultRef
si rien n'a été trouvé (c'est à direstatus
n'est paserrSecSuccess
).Besoin de changer
attributes
à&attributes