假設,一個應用的view controller
裏面有很多views
,它們的幀是相對於view controller
的幀。 使用self.view.frame.size.height/width
是否存在任何優勢/劣勢,而不是將它們的值存儲在變量中,並用它們代替?在內存使用,CPU使用率,延時等方面的優勢/劣勢。 而在它的核心,這些值是height
,width
或相關參數存儲在某處的內存中,還是每次代碼請求它們時都會提取/計算它們?使用'self.view.frame.size.height',而不是將其存儲在變量中的優勢?
1
A
回答
1
我建議將值存儲在變量中,並使用它會更好。
如果您致電self.view.frame.size.height
,它會每次計算。他們會影響性能。
做:
int counter = self.view.frame.size.width;
for(int loop=0;loop<counter;loop++)
{
}
優於:
for(int loop=0;loop<self.view.frame.size.width;loop++)
{
}
在某些情況下,如果寬度和高度動態變化(動畫邏輯),你需要在這個基礎上做一些事情值然後使用self.view.frame.size.width
將是一件好事。
0
優點:
當視圖調整大小,寬度和高度可變自動獲取與調整大小後的值來更新。保存寬度和高度的局部變量都會讓你寫unncecessary代碼管理上造成調整視圖中的每個可能的事件兩者的更新用。
使用本地變量時,內存中的副本會增加。儘管內存浪費的大小可以忽略不計,但用於保存重複變量的額外內存始終是一個事實。
缺點:
- 如果參考從view.frame.size.height本身的寬度和高度,則可能會失去的初始值。
0
我只想指出,self.view.frame.size.height = 1
不會像預期的那樣工作。它是同CGRect temp = self.view.frame; temp.size.height = 1;
所以總是分開的setter /吸氣通話和結構在不同的行存取。即
CGRect frame = self.view.frame; // use objc dot syntax to get frame
frame.size.height = 100; // use C struct accessors
self.view.frame = frame; // use dot syntax to set frame
相關問題
- 1. self.view.frame.size.height 1004,而不是1024
- 2. 如何正確存儲變量而不將其全局存儲?
- 3. 爲什麼在引用對象的類變量中有優勢?而不是存儲對象本身
- 4. 使用局部變量而不是全局變量在Python中獲得的性能優勢限制?
- 5. 在MySQL中存儲BINARY的優勢
- 6. 鍵值存儲的優勢是什麼?
- 7. 在控制器中設置變量而不是視圖有什麼優勢?
- 8. 在視圖中使用存儲過程的優勢?
- 9. 試圖使用JavaScript變量作爲PHP變量,並將其存儲在mysql中
- 10. 如何將變量的值存儲在列表中而不是參考中?
- 11. 將變量存儲在變量中
- 12. 優勢在Java中使用靜態變量的
- 13. 其中是存儲在內存段中的全局變量和靜態變量?
- 14. 將命令的輸出存儲在Bash中的變量中。輸出正在運行,而不是存儲
- 15. 存儲在變量中而不是寫入控制檯?
- 16. 這是一個直接在MongoDB中存儲圖像而不是在服務器端文件夾中的優勢
- 17. 將命令存儲在變量&使用變量中
- 18. 任何隊列工作者使用node.js而不是其他語言的優勢?
- 19. 是存儲在標準::向量指針破壞它的優勢的連續存儲器存儲
- 20. Ruby正在本地變量中存儲類而不是實例變量
- 21. 有使用按鈕而不是鏈接的優勢嗎?
- 22. 使用JAX-RS 2.0與CDI/Weld而不是Guice的優勢?
- 23. 將sql用戶存儲在變量中
- 24. 使用直接Rfc調用而不是BAPI有優勢嗎?
- 25. 保存XDocument而不將其存儲在內存中
- 26. 在創建新成員變量時存儲AsyncCallback的性能優勢
- 27. 將列表變量存儲爲字符串並將其存儲爲變量
- 28. dom不能使用變量將數據存儲在xml中
- 29. 將enum常量存儲在變量中
- 30. PHP將變量存儲在緩存中