2012-04-27 74 views
1

我的問題很簡單: 是否確定是這些:startUpdatingLocation在初始化

manager.delegate = self; 
[manager startUpdatingLocation]; 
return self; 

爲-init方法的最後幾行?

由於這一點的對象應該被構造,但我對此有不好的感覺。

同樣相關 - 如果不這樣做,我應該推遲執行-startUpdatingLocation以及多長時間?

回答

2

這絕對沒問題。 Init是執行此操作的有效方法。

您需要延遲的唯一時間是當您需要使用在代碼執行過程中進一步發揮作用的東西時。例如要對視圖進行更改,您應該在viewWillAppear:viewDidLoad中執行此操作,因爲在init方法中視圖無法正確設置。

但是在這個例子中,你沒有使用任何在對象後面設置的對象,所以使用init方法很好。

請務必記得首先運行[super init],以便對象正確設置。

1

沒關係。

正如你在正常情況下你所做的一樣。即

  • 你用來初始化它
  • 設置委託
  • 然後開始更新位置。

你在這裏做同樣的事情。