[英]Why there is no warning while casting with viewWithTag?
例如,
UIImageView *iconView = [cell.contentView viewWithTag:TestTag];
我記得如果我不明確地強制轉換類型,之前會有警告,但現在 Xcode 沒有顯示,我的 Xcode 版本是 7.1.1,這是一個新功能還是我修改了一些配置? 誰能告訴我為什么?
Objective-C 中有一個新的 (Xcode 7) 關鍵字__kindof
,它可以讓您更好地表達方法的返回值。 而不是viewWithTag:
returning UIView *
,它可以返回__kindof UIView *
,它告訴編譯器類似:
接受退貨類型的任何隱式垂頭喪氣如果類型是一個
UIView
或子類UIView
。
由於UIImageView
是UIView
的子類,因此不需要顯式轉換。 另一方面,以下代碼行會導致編譯器錯誤,因為NSDate
不是UIView
的子類:
NSDate *date = [cell.contentView viewWithTag:TestTag];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.