我通過將XIB編輯器中的UI組件拖動到我的視圖控制器的頭文件中來創建IBOutlets。我在花括號內拖放,以便將它們簡單地視爲實例變量而不是屬性。然而,儘管如此,我注意到我的viewDidUnload和dealloc方法中的釋放語句。這不是沒有必要嗎?就像我說的,這些不是我創造的屬性。爲什麼生成的代碼在沒有保留,分配,複製等時釋放這些對象?在Xcode 4中添加插座
回答
在iOS上,如果出口被宣佈爲伊娃,而不是一個屬性,你負責在適當的時候釋放它(即-dealloc
和-viewDidUnload
。你也應該將它們設置爲nil
後者。 )
這是由於iOS上內存管理的怪癖。無論如何,我的個人偏好是避免使用readwrite
屬性的網點,因爲恕我直言,它打破了視圖控制器的封裝不良。
我認爲原因是所有的網點都應該保留屬性。這樣所有的視圖子視圖(你的按鈕等)將保證活得比視圖本身更長。我從來沒有聽說過你編碼的方式。通常你只需輸入代碼並將你的插座連接到.xib。
真的嗎?好吧,我早就想過了,但後來我遇到了這本書:Bill Dudney和Chris Adamson撰寫的iPhone SDK開發。在大多數例子中,他們不會將IBOutlets聲明爲屬性! – NSExplorer 2011-05-26 21:19:24
查看Apple文檔。在這個頁面的中間向下滾動,討論網點。 http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iPhone101/Articles/05_ConfiguringView.html。您也可以在此頁面上查看將視圖控制器設置爲屬性的內容,以確保它與應用程序一樣長。 http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iPhone101/Articles/03_AddingViewController.html%23//apple_ref/doc/uid/TP40007514-CH5-SW1。子視圖也是一樣。你不希望在屏幕上看到你的視圖被釋放 – Jamie 2011-05-27 03:59:49
- 1. 在Ember.ListView中添加插座
- 2. 爲Monobjc應用程序在XCode 4中添加插座和操作
- 3. 在MonoTouch中動態添加插座
- 4. 在Xcode 4中的插座連接異常
- 5. 如何將項目添加到Xcode中的插座集合
- 6. 將插座添加到UIButton
- 7. 我無法在XCode中創建插座
- 8. 在Xcode 4中添加OpenGL框架
- 9. 如何在XCode 4中添加書籤?
- 10. 將插座添加到iPhone視圖
- 11. 在Xcode 3.2.3的界面生成器中添加插座到「對象」
- 12. 插座4,溝通的BufferedReader
- 13. 的Xcode 4添加庫
- 14. xCode 4添加文件夾
- 15. XCode 4,添加本地化
- 16. 將zxing添加到XCode 4
- 17. 在iOS 5中爲XCode 4中的自定義UITableViewCell連接插座
- 18. 插座與插座集合
- 19. Xcode 4錯誤:「查看插座未設置」
- 20. Xcode 5中的插座/操作問題
- 21. 刪除xcode中未使用的插座
- 22. 查看插座沒有設置? (Xcode中)
- 23. 我可以在Xcode 4添加書籤?
- 24. XCode 4:插入Subversion版本號在Xcode
- 25. Xcode 4 automator插件
- 26. Xcode 4無法加載插件
- 27. Xcode 3.2缺少類操作/插座?
- 28. Flex插座到插座
- 29. 添加Git倉庫到Xcode 4
- 30. 將libiphone-exif.a添加到xcode 4
我不明白爲什麼如果我沒有分配,保留或複製它,爲什麼我應該釋放一個插座? – NSExplorer 2011-05-26 21:23:34
通常情況下你不會。這是一個罕見的例外。你的'release'平衡了Nib解碼完成時的'retain'或'alloc'。 – 2011-05-26 21:32:35