この質問は純粋な好奇心です。
Xcodeでは、なぜこれが機能するのですか:
if (view.class == [UITextView class]) {
UITextView *tview = (UITextView *)view;
tview.textColor = [UIColor colorWithRed:0.020 green:0.549 blue:0.961 alpha:1.];
}
ただし、次のエラー メッセージが表示されますProperty 'textColor' not found on object of type 'UIView *'
。
if (view.class == [UITextView class]) {
(UITextView *)view.textColor = [UIColor colorWithRed:0.020 green:0.549 blue:0.961 alpha:1.];
}
直感的に、これらはまったく同じことを達成するはずです。
しかし、その後、括弧内のインラインキャストを囲む場合、それは正常に機能します。
if (view.class == [UITextView class]) {
((UITextView *)view).textColor = [UIColor colorWithRed:0.020 green:0.549 blue:0.961 alpha:1.];
}
C が操作の順序を処理する方法に関係していると思われますが、説明を聞きたいと思います。ありがとう!