如何在 swift 4 中对对象数组使用 .contains
How to use .contains for Array of Object in swift 4
func addData(){
if lac_combinedFilterArray[1][0] == true{
let Lac = realm.objects(LegalAidClinics.self)//.filter("service.lac_service_filter == true")
for lac in Lac{
let filteredServices = lac.service.filter("lac_service_filter == true")
for service in filteredServices{
let service_index = filteredServices.index(of: service)
if lac.service.contains(filteredServices[service_index!]){
if !lac_combined_Array.contains(where: {[=11=].lac.legal_aid_clinic_id == lac.legal_aid_clinic_id}){
lac_combined_Array.append(lac)
}
}
}
}
if lac_combinedFilterArray[1][1] == true{
let chapters = realm.objects(IBPChapters.self)
for chapter in chapters{
let filteredServices = chapter.service.filter("lac_service_filter == true")
for service in filteredServices{
let service_index = filteredServices.index(of: service)
if chapter.service.contains(filteredServices[service_index!]){
if !lac_combined_Array.contains(element: Object){
lac_combined_Array.append(chapter)
}
}
}
}
}
}
我将在 lac_combined_array
中追加 2 个对象,我想添加一个条件
if lac_combined_array.contains(where: {[=12=].IBPChapters.ibp_chapter_id == chapter.ibp_chapter_id})
和
if lac_combined_array.contains(where: {[=13=].LegalAidClinics.legal_aid_clinics_id == lac.legal_aid_clinics_id})
如何在swift4的对象数组中使用.contains
检查元素的类型,如果数组包含不同类型的对象,则进行相应的比较:
if lac_combined_array.contains(where: { (obj) -> Bool in
if let chapters = obj as? IBPChapters {
return chapters.ibp_chapter_id == chapter.ibp_chapter_id
}
else if let legalAidClinics = obj as? LegalAidClinics {
return legalAidClinics.legal_aid_clinics_id == lac.legal_aid_clinics_id
}
return false
}) {
//......
}
func addData(){
if lac_combinedFilterArray[1][0] == true{
let Lac = realm.objects(LegalAidClinics.self)//.filter("service.lac_service_filter == true")
for lac in Lac{
let filteredServices = lac.service.filter("lac_service_filter == true")
for service in filteredServices{
let service_index = filteredServices.index(of: service)
if lac.service.contains(filteredServices[service_index!]){
if !lac_combined_Array.contains(where: {[=11=].lac.legal_aid_clinic_id == lac.legal_aid_clinic_id}){
lac_combined_Array.append(lac)
}
}
}
}
if lac_combinedFilterArray[1][1] == true{
let chapters = realm.objects(IBPChapters.self)
for chapter in chapters{
let filteredServices = chapter.service.filter("lac_service_filter == true")
for service in filteredServices{
let service_index = filteredServices.index(of: service)
if chapter.service.contains(filteredServices[service_index!]){
if !lac_combined_Array.contains(element: Object){
lac_combined_Array.append(chapter)
}
}
}
}
}
}
我将在 lac_combined_array
中追加 2 个对象,我想添加一个条件
if lac_combined_array.contains(where: {[=12=].IBPChapters.ibp_chapter_id == chapter.ibp_chapter_id})
和
if lac_combined_array.contains(where: {[=13=].LegalAidClinics.legal_aid_clinics_id == lac.legal_aid_clinics_id})
如何在swift4的对象数组中使用.contains
检查元素的类型,如果数组包含不同类型的对象,则进行相应的比较:
if lac_combined_array.contains(where: { (obj) -> Bool in
if let chapters = obj as? IBPChapters {
return chapters.ibp_chapter_id == chapter.ibp_chapter_id
}
else if let legalAidClinics = obj as? LegalAidClinics {
return legalAidClinics.legal_aid_clinics_id == lac.legal_aid_clinics_id
}
return false
}) {
//......
}