簡體   English   中英

為什么使用 viewWithTag 投射時沒有警告?

[英]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

由於UIImageViewUIView的子類,因此不需要顯式轉換。 另一方面,以下代碼行會導致編譯器錯誤,因為NSDate不是UIView的子類:

NSDate *date = [cell.contentView viewWithTag:TestTag];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM