我想了解編寫比較函數的標準方式是什麼。iOS比較功能
如果我有一個對象Person
與屬性age
並希望編寫我自己的比較函數。我想使用它,以便Person對象從低到高順序排列。
即
Person *young = [[Person alloc] initWithAge:10];
Person *old = [[Person alloc] initWithAge:80];
如果我現在運行[young compare:old]
這應該回報NSOrderedDescending
或NSOrderedAscending
?
我不確定哪個對象從哪個對象上升或下降(如果有意義的話)。
單寫它不是很簡單,運行比較,看看你的訂單是否是你期望的?比發表問題更容易,並等待回覆? – mah 2013-02-14 00:33:48
是的,但如果我自己寫,我可以把它放在任何地方。 – Fogmeister 2013-02-14 00:34:12
如何使用它只在使用時纔有意義,所以如果你使用它,你將不僅僅是一個任意的決定(並且足以知道這個決定是否有效)。如果您要將兩個Person對象放在一個NSArray中,然後使用符合您的猜測的比較函數對數組進行排序,那麼您將立即從輸出中知道元素是否根據您的期望進行了排序( - >您的決定是正確的),或與他們相反( - >扭轉你的比較意識來修復它)。 – mah 2013-02-14 00:38:04