2014-10-04 55 views
0

UIViewdocumentation指出initWithFrame:可以返回nil:- [UIView的initWithFrame:方法]返回nil

在哪些情況下能這樣呢?

+0

一種情況是,如果視圖是通過界面生成器/故事板創建的。 – n00bProgrammer 2014-10-04 06:41:19

+1

@ n00bProgrammer如果視圖是從xib或storyboard文件加載的(調用'initWithCoder'),則文檔聲明「'initWithFrame'」是***未被調用。 – 2014-10-04 06:46:41

+0

是的,我的意思是。它沒有被調用。我的錯。 – n00bProgrammer 2014-10-04 06:52:43

回答

0

An NSObjectcan return nil from its initialiser method,並且由於UIView繼承自NSObject,它也可以返回nil。

除非存在無法創建對象的特定原因(例如,在他們給出的示例中,設備上沒有攝像頭的攝像頭對象),那麼您總是可以期望獲得返回值。

你當然不會檢查你是否每次都得到一個值。如果存在一些可怕的低內存或資源情況,這意味着無返回狀態,那麼您的應用程序可能即將死亡。

+0

好的,那麼問題就會從'UIView'的init方法返回'nil'的時候轉移到'NSObject'的init方法可以返回nil的時候。它只是在低內存? – lassej 2014-10-04 07:51:53

+0

順便說一句,對於'UIViewController',沒有記錄可能會返回nil。 https://developer.apple.com/library/ios/Documentation/UIKit/Reference/UIViewController_Class/index.html#//apple_ref/occ/instm/UIViewController/initWithNibName:bundle: – lassej 2014-10-04 07:52:40