Привет всем в моих проектах, у меня есть NSMutableArray, содержащий числовое значение словаря, здесь я отфильтровал одну строку, но теперь я хочу отфильтровать несколько строк в этом массиве, то есть ниже мое значение массива
(
{
BusAC = "A/C";
BusFare = 550;
BusType = "Semi Sleeper";
TravelsName = "ABC Travels";
},
{
BusAC = "Non A/C";
BusFare = 600;
BusType = Seater;
TravelsName = "Arulmigu Aandal Azahagar Madurai Express";
},
{
BusAC = "A/C";
BusFare = 1250;
BusType = Sleeper;
TravelsName = "GSP Travels";
},
{
BusAC = "Non A/C";
BusFare = 350;
BusType = "Semi Sleeper";
TravelsName = "Madura Travels";
},
{
BusAC = "A/C";
BusFare = 420;
BusType = Seater;
TravelsName = "MJT Travels";
},
{
BusAC = "A/C";
BusFare = 1500;
BusType = Sleeper;
TravelsName = "OPR Travels";
},
{
BusAC = "Non A/C";
BusFare = 730;
BusType = Seater;
TravelsName = "MJT Travels";
}
)
в этом я отфильтровал по одной строке, например Sleeper bus
NSPredicate *predicateStr1 = [NSPredicate predicateWithFormat:@"%K == %@", @"BusType",@"Sleeper"];
NSMutableArray *filteredArray1 = [NSMutableArray arrayWithArray:[totDictArray filteredArrayUsingPredicate:predicateStr1]];
затем я отфильтровал две строки, такие как Sleeper и AC
NSPredicate * prediStr=[NSPredicate predicateWithFormat:@"BusType == %@ AND BusAC == %@",@"Sleeper",@"A/C"];
это также работает хорошо, но теперь я хочу фильтровать, например, массив и строку
String is A/C & Array value is (
"ABC Travels",
"GSP Travels"
)
Я попробовал этот код здесь, arr - это вышеупомянутый массив
for (int i=0; i<arr.count; i++)
{
NSPredicate * prediStr=[NSPredicate predicateWithFormat:@"TravelsName == %@ AND BusAC == %@",arr[i],@"A/C"];
NSLog(@"prediStr %@",prediStr);
NSMutableArray *filteredArray = [NSMutableArray arrayWithArray:[totDictArray filteredArrayUsingPredicate:prediStr]];
NSLog(@"filteredArray %@",filteredArray);
}
Помоги мне..
Обновлено
(
{
Boarding = (
"CMBT Omini BS",
CMBT,
Vadapalani,
"Ashok Nagar",
Thambaram,
Perungulathur,
Vandalur
);
BusAC = "A/C";
BusFare = 550;
BusType = "Semi Sleeper";
Dropping = "Trichy Bypass";
TravelsName = "ABC Travels";
},
{
Boarding = (
"CMBT Omini BS",
CMBT,
Vadapalani,
"Ashok Nagar",
Thambaram,
Perungulathur,
Vandalur
);
BusAC = "Non A/C";
BusFare = 600;
BusType = Seater;
Dropping = "Chathram BS";
TravelsName = "Arulmigu Aandal Azahagar Madurai Express";
},
{
Boarding = (
"CMBT Omini BS",
CMBT,
Vadapalani,
"Ashok Nagar",
Thambaram,
Perungulathur,
Vandalur
);
BusAC = "A/C";
BusFare = 1250;
BusType = Sleeper;
Dropping = "Thillai Nagar";
TravelsName = "GSP Travels";
},
{
Boarding = (
Thambaram,
Perungulathur,
Vandalur
);
BusAC = "Non A/C";
BusFare = 350;
BusType = "Semi Sleeper";
Dropping = "Trichy Bypass";
TravelsName = "Madura Travels";
},
{
Boarding = (
"CMBT Omini BS",
CMBT,
Vadapalani,
"Ashok Nagar",
Guindy,
Velachery,
Thambaram,
);
BusAC = "A/C";
BusFare = 420;
BusType = Seater;
Dropping = "Court Campus";
TravelsName = "MJT Travels";
},
{
Boarding = (
"CMBT Omini BS",
CMBT,
Thambaram,
Perungulathur,
Vandalur
);
BusAC = "A/C";
BusFare = 1500;
BusType = Sleeper;
Dropping = "Central BS";
TravelsName = "OPR Travels";
},
{
Boarding = (
"CMBT Omini BS",
CMBT,
Vadapalani,
"Ashok Nagar",
Thambaram,
);
BusAC = "Non A/C";
BusFare = 730;
BusType = Seater;
Dropping = "Omini BS";
TravelsName = "MJT Travels";
}
)
в этом массиве у меня есть посадка, также в этом я хочу отфильтровать массив посадки, что означает, что BusAC - это кондиционер, а посадка - это
(Guindy,
Velachery,
Thambaram,)
IN
. Я уверен, что есть лучший способ, но я слишком занят, чтобы решить это сейчас. 24.11.2015