iOS 模型陣列去重複

大兵布萊恩特0409發表於2018-07-12

如果對模型陣列裡相同內容進行去重複,首先每個模型要有個唯一的標識,一般資料庫都會有個主鍵 id, 服務端返回資料時會根據這個主鍵 id查詢資料.

下邊會以一個具體的例子來演示

4491522201607_.pic_hd.jpg

這3條資料內容是一樣的 其中主鍵 id serviceId 都是一樣的 ,那麼我們根據每個模型裡的serviceId 進行陣列去重

具體程式碼如下


dispatch_async(dispatch_get_global_queue(0, 0), ^{
		NSMutableDictionary *tmpDict = [NSMutableDictionary dictionary];
		for (NSArray *subArr in array) {
			for (YVServiceListModel *model in subArr) {
				[tmpDict setObject:model forKey:model.serviceId];
			}
		}
		self.monitorOrderArray = [tmpDict.allValues mutableCopy];
		dispatch_async(dispatch_get_main_queue(), ^{
			[self.tableView reloadData];
		});
	});

複製程式碼

通過Dictionary我們可以將模型資料放到一個字典裡, serviceId作為 Key 這樣出現重複的serviceId 可以將原來的值進行重新賦值,因為字典裡 key 是唯一的

去除重複後效果

4511522201698_.pic.jpg

好了,我是大兵布萊恩特,歡迎加入博主技術交流群,iOS 開發交流群

QQ20180712-0.png

相關文章