2014-09-02 77 views
0

我在iOS應用程序中編寫了一些組件。如果用戶選擇關閉此功能,我將從我的函數返回零。如果左側表達式爲零,則不要評估右側表達式

//self.currentRequest would be nil if user has turned off the feature. 
    self.currentRequest.startTimeStamp = [NSDate date]; 
     self.currentRequest.url = [request.URL absoluteString]; 

我希望右側表達式不應評估左側表達式是否爲零。 我不想用if-else來包裝代碼,因爲代碼遍佈在記錄時間的功能上。 我讀Swift文檔,看起來像Swift有if let語法來做到這一點。 Objective-C如何做到這一點?

回答

0

也許這樣?但是如果startTimeStamp是隻讀的,這將不起作用。

self.currentRequest.startTimeStamp = self.currentRequest.startTimeStamp ? [NSDate date] : nil; 

雖然,你最好的選擇可能只是一個例子。你爲什麼不想用它?

if(self.currentRequest) 
{ 
    //Do your stuff.... 
} 

也許這? (如果在無效函數中)

if(!self.currentRequest) return; 
+0

感謝您的建議,但我對if-else塊不感興趣。因爲我已經編寫了許多函數來記錄時間。我不想在所有地點放置if-else。 – 2014-09-02 06:55:15

+0

但爲什麼你需要一個別的塊?如果你不想做任何事,如果它是零,你就不要把它包裝在一個if塊中。你建議一個「如果讓」 - 等價的。 objc中沒有這樣的事情,只是使用簡單的if。另外,我的最後一個建議是什麼呢? – ullstrm 2014-09-02 06:57:11

+0

我不能返回零,因爲函數正在做其他的東西,我只是在函數的開始和結束處插入一堆語句來記錄函數用來執行中間語句的時間。 self.current請求來自我的實用程序類,並在我需要記錄時間的地方使用。 – 2014-09-02 07:07:22