這應該很容易。我有一個NSSet People對象。我如何獲得姓氏在該集合中按字母順序排在第一位的人的對象?從NSSet獲取對象通過測試
0
A
回答
0
如果你不希望在設定爲大,你可以使用:
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"lastname" ascending:YES];
NSArray *sortedArray = [peopleSet sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
People *person = nil;
if (sortedArray) {
person = sortedArray[0];
}
0
寫方法firstObjectInSet:usingComparator:
你甚至可以讓它在NSSet中一類方法。
在該方法中,您只需遍歷集合中的對象(可能使用enumerateObjectsUsingBlock)。你需要定義一個本地(_block)變量firstObject outiside集合。並且對於每次迭代,如果新對象位於先前對象之前,則將firstObject替換爲新對象。然後枚舉完成後,返回firstObject作爲方法結果。那總是隻有一個通過該集合並返回第一個對象。
如果您不需要那麼靈活,請刪除NSComparator參數,然後硬編碼一個方法來查找第一個對象。
相關問題
- 1. 從測試計劃通過OTAClient獲取所有QC測試 - JAVA
- 2. 通過hashcode獲取對象
- 3. 通過id()獲取對象?
- 4. 使用對象過濾NSSet以獲取具有最大屬性值的對象
- 5. 從NSSet獲取隨機對象不起作用
- 6. 測試 - 試圖通過用戶名使用$ httpBackend.expectGET獲取用戶JSON對象
- 7. 通過json對象獲取對象而不是值「讀取」通過json對象
- 8. jQuery通過編號從ID的對象獲取對象
- 9. 通過CoreDataGeneratedAccessors添加對象通過多對多關係的NSSet爲空
- 10. 使用NSSet/NSMutableSet過濾對象?
- 11. 通過tcm啓動測試後獲取測試運行ID
- 12. NSSet如何隨機提取對象?
- 13. 如何通過碰撞檢測獲取對象參數?
- 14. 如何通過SessionId獲取Session對象?
- 15. 通過ManyToMany-關係獲取對象
- 16. 通過字符串獲取JSON對象
- 17. SOQL通過結對象獲取數據
- 18. NSDictionary通過屬性值獲取對象
- 19. 如何通過NSString獲取類對象
- 20. 獲取父對象並通過
- 21. 通過名稱獲取對象
- 22. 如何通過其uid獲取對象?
- 23. 通過屬性值獲取對象
- 24. LINQ通過外鍵獲取對象
- 25. 通過屬性獲取JSON對象
- 26. 通過WPF中的UID獲取對象
- 27. 通過C獲取iframe文檔對象#
- 28. AngularJS:通過工廠ID獲取對象
- 29. 僅通過屬性值獲取對象
- 30. 如何通過jquery獲取對象值?
如果唯一的需要是第一個對象,那麼排序很昂貴。最好的情況是,排序通常需要n•Log(n)次迭代,這是一個非常好的排序操作。要找到n個對象的集合/數組中的第一個對象,只需要進行n次比較。 –
如果該集合非常小,並且他可以在後臺線程上執行排序,那麼它並不重要。我同意這不是理想的 – JuJoDi