2016-06-14 6 views
20

私のプロジェクトをXcode 8にアップデートしました。このエラーは私のアプリに含まれている複数の外部フレームワークで見つかりました。このコンパイルエラーを回避するための回避策がありますか?Xcode 8: 'objc_unretainedPointer'は使用できません__bridgeキャストを代わりに使用

これは、エラーの例です(私はそれがインポートされたフレームワークですので、変更することはできませんだと)Xcodeの8のために

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

エラーの原因となった行と完全なエラーメッセージを表示します。 – Droppy

+0

'ivar'とは何ですか?もう少し文脈を提供してもよろしいですか? – JAL

+0

ivarはIvarです。ivar = class_getInstanceVariable(ivarInfo [@ "class"]、[ivarName UTF8String]);私は外部からの外部フレームワークの内部にあるコードについて話しているので、ここで修正することはほとんどできないので、これは適切ではないと私は考えている。 – tonik12

答えて

18

、それは次のようになります。

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

これは問題を解決しません。これは外部フレームワークで発生しているため修正できません。 – tonik12

+0

@ user2461338コードを変更する必要がないソリューションを探していますか? – Droppy

+0

私はそれが唯一の方法だと信じています。そうでなければ、私は聞いて喜んでいるでしょう。 – tonik12

2

次のことができます簡単にobjc_unretainedPointer(self)(__bridge void *)(自己)

関連する問題