web-dev-qa-db-fra.com

Xcode 8: 'objc_unretainedPointer' n'est pas disponible, utilisez plutôt un casting __bridge

Je viens de mettre à jour mon projet avec Xcode 8 et je trouve cette erreur dans plusieurs cadres externes inclus dans mon application. Existe-t-il une solution de contournement, touchant peut-être des paramètres, pour éviter ces erreurs de compilation?

Ceci est un exemple d'erreur: (que je ne peux pas modifier car c'est un framework importé)

const void * ivarPtr = objc_unretainedPointer(self) + ivar_getOffset(ivar);
[decoder decodeValueOfObjCType:[ivarInfo[@"encoding"] UTF8String] at:(void *)ivarPtr];
20
tonik12

Pour Xcode 8, cela devrait être:

const void * ivarPtr = (__bridge void *)(self) + ivar_getOffset(ivar);
18
Jin

Vous pouvez simplement remplacer objc_unretainedPointer(self) par (__bridge void *) (self)

2
Dheeraj D