を使用しようとしている間に橋が、私はちょうどshadowPathプロパティのCABasicAnimation
を設定して、これは私は好奇心作ら必要な、一貫性のない警告をキャスト:CGPathRef
shadowAnimation.toValue = (id)newShadowPath.CGPath;
[注意:shadowAnimationはCABasicAnimation
オブジェクトであり、newShadowPath
はUIBezierPath
ですオブジェクト]
これは動作し、エラー/警告はXcodeに表示されません。しかし、私はそのようにのように書いた場合:
CGPathRef test = newShadowPath.CGPath;
shadowAnimation.toValue = (id)test;
をこれは、この警告メッセージを投げて、コンパイルされません。
今shadowAnimation.toValue = (__bridge id)test;
:
Cast of C pointer type 'CGPathRef' (aka 'const struct CGPath *') to Objective-C pointer type 'id' requires a bridged cast
だから、それは次のようにそれを入力するために私を必要としなぜこれはそうですか? (id)newShadowPath.CGPathのみを使用すると、最初の例で同じエラーが発生します。 ? __bridge
をXcodeに関係なく配置しても問題は検出されません。または、私はここで何が違うのですか?
うわー、これを分析するような努力に行ってくれてありがとう。私は正しい答えとしてこれを受け入れました。何が起きているのかを正確に説明するには、この長い時間がかかります。 –