2015-11-03 16 views
0

我是iOS開發新手。我正在開發一個小型的電子商務應用程序,我想知道如何實現「排序」和「過濾」項目(衣服/包/鞋等)。這意味着當我點擊「排序」按鈕時,它應該顯示按人氣排序的選項,價格:從高到低以及從低到高和新到達,並且當我點擊其中一個選項時,它應該根據需要過濾出項目/數據。將不勝感激。提前致謝! :)如何實現項目的「排序」和「過濾」?

+2

你在排序?它存儲在哪裏?它只是一個項目的數組?它存儲在CoreData中嗎?它是從服務器上下載的東西嗎?你如何顯示這些項目?它是在tableview中嗎?我們需要更多關於你在做什麼的信息,然後我們才能提供幫助:) – Fogmeister

+0

數據/圖像位於Web服務器上。但是,在從Web服務器獲取和加載數據之前,我想實現這些兩個按鈕。所以我使用的是數組項目。我在我的項目中存儲了一些臨時圖像。而且我創建了一個UICollectionView來顯示圖像數量(例如,顯示男士穿戴物品等)。我想對這些圖像/項目進行排序。一些示例代碼/參考鏈接將會有所幫助。首先,我只是想添加並顯示這些排序名稱(人氣,價格,新到)按鈕排序。我被困在這裏。 – Vaibhav

+0

你的數據的結構是什麼?粘貼一些代碼。 – Vive

回答

1

您可以使用NSSortDescriptor對項目列表進行排序和過濾,並將NSPredicate應用於您的數組以獲得結果數組。我給這裏的例子來展示它。

@interface Person : NSObject{ 
NSNumber *age, 
NSString *name, 
} 

在這裏,我根據

年齡
NSArray *listArray = @[person1, person2, person3....]; 

NSSortDescriptor*sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO]; 
NSArray *sortedListArray = [listArray sortedArrayUsingDescriptors:@[sortDescriptor]]; 

排序和從現有陣列篩選項目,你可以使用謂詞來找到它。 可以說我必須爲那些人過濾,他們的年齡大於20歲。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Age>=20"] 
filteredArray = [listArray filteredArrayUsingPredicate:predicate]; 
+1

很棒的工作,這對我有用...... :) –