这个问题纯属好奇。
在 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 如何处理操作顺序有关,但我很想听听解释。谢谢!