为什么用 viewWithTag 投射时没有警告?
Why there is no warning while casting with viewWithTag?
例如,
UIImageView *iconView = [cell.contentView viewWithTag:TestTag];
我记得以前如果不显式转换类型会有警告,但现在Xcode不显示了,我的Xcode版本是7.1.1,是那是一个新功能还是我修改了一些配置?谁能告诉我为什么?
Objective-C、__kindof
中新增了 (Xcode 7) 关键字,可让您更好地表达方法的 return 价值。而不是 viewWithTag:
returning UIView *
,它可以 return __kindof UIView *
告诉编译器类似的东西:
Accept any implicit downcast of the return type if the type is a UIView
or a subclass of UIView
.
因为 UIImageView
是 UIView
的子类,所以不需要显式转换。另一方面,以下代码行将导致编译器错误,因为 NSDate
不是 UIView
的子类:
NSDate *date = [cell.contentView viewWithTag:TestTag];
例如,
UIImageView *iconView = [cell.contentView viewWithTag:TestTag];
我记得以前如果不显式转换类型会有警告,但现在Xcode不显示了,我的Xcode版本是7.1.1,是那是一个新功能还是我修改了一些配置?谁能告诉我为什么?
Objective-C、__kindof
中新增了 (Xcode 7) 关键字,可让您更好地表达方法的 return 价值。而不是 viewWithTag:
returning UIView *
,它可以 return __kindof UIView *
告诉编译器类似的东西:
Accept any implicit downcast of the return type if the type is a
UIView
or a subclass ofUIView
.
因为 UIImageView
是 UIView
的子类,所以不需要显式转换。另一方面,以下代码行将导致编译器错误,因为 NSDate
不是 UIView
的子类:
NSDate *date = [cell.contentView viewWithTag:TestTag];