2014-06-23 54 views
-1

我的應用程序工作正常,但是當我analyzeing其X-代碼告訴我這個誤差的CGRect

enter image description here

那是什麼意思?

任何人都可以幫忙嗎?

+0

「右鍵點擊 - 複製圖片網址 - 在新標籤頁中打開」感覺很長 - >請調整圖片大小...但CGRectZero是你的朋友,因爲它可能未初始化取決於你的Interface_Idiom – Alexander

+2

你的矩形沒有iPad版本 –

回答

3

CGRect rect = CGRectZero;將解決它。

「參數包含未初始化的數據」意味着在您的情況下,參數rect可能作爲UIImageView *splashImageView = [[UIImageView alloc] initWithFrame:rect]中的方法參數未初始化傳遞。如果第一個if語句失敗,則觸發不會設置幀的else會發生這種情況。

如上所示,您需要在if-else之外設置默認值,或者在else塊中設置rect值。

您應該知道所有基元/結構默認情況下都沒有初始值,並且這些值是垃圾。同樣的錯誤的一個簡單的例子是:

int i; //at this point the i may have any value 
i = i+1; 
+0

嗨,這可能是如此......但它通常是很好的做法,以解釋爲什麼;)不要忘記,在這個網站上有新手可能會從你那裏學到一兩件事:) –

+0

你是對的,雖然我不知道如何更好地解釋它,然後分析器「參數包含未初始化的數據」 –

+0

「用一個新的實例初始化它...因爲這是什麼導致它拋出錯誤,當......」:) –

0

if語句有一個else,其中rect將不會被初始化...

0

你必須初始化RECT爲iPad或者如果主別的刪除。

1

您不應該提供未初始化的CGRect。如果您的代碼將在iPad上運行,則將提供ivar rect,以便在未初始化的情況下查看。因此,您可以在創建時提供一些默認值,或者您需要在else語句中編寫適當的值。