我是Objective-C編碼中的Begginer,我需要一些NSPredicates的幫助。NSPredicate生成空數組的字典數組
我需要過濾(由id_especie)我從一個Json文件解析並檢索數據到另一個數組的字典數組。不幸的是我得到的是一個空數組;
這是我的字典的數組(id_especie意味着species_id和id_raca意味着breed_id):
{
"id_especie" = 1;
"id_raca" = 1;
raca = Afghanhound;
},
{
"id_especie" = 1;
"id_raca" = 2;
raca = "Airedale Terrier";
},
{
"id_especie" = 1;
"id_raca" = 3;
raca = Akita;
},...,
{
"id_especie" = 2;
"id_raca" = 47;
raca = "N/I";
},
{
"id_especie" = 2;
"id_raca" = 48;
raca = Siames;
},
{
"id_especie" = 3;
"id_raca" = 49;
raca = Periquito;
},
{
"id_especie" = 4;
"id_raca" = 50;
raca = Cobra;
},
{
"id_especie" = 4;
"id_raca" = 51;
raca = Lagarto;
},
{
"id_especie" = 5;
"id_raca" = 52;
raca = "Furao";
},
{
"id_especie" = 5;
"id_raca" = 53;
raca = Hamster;
},
{
"id_especie" = 6;
"id_raca" = 54;
raca = Outros;
}
這是我的代碼:
.H
@property (nonatomic, strong) NSMutableArray *arrayBreedAndSpecies;
@property (nonatomic, strong) NSArray *filteredArray; //edited
.M
NSError *errorLoad = nil;
NSURL *jsonUrl = [[NSURL alloc]initWithString:@"http://marcosdegni.com.br/petsistema/teste/raca.php"];
NSString *jsonString = [NSString stringWithContentsOfURL:jsonUrl encoding:NSUTF8StringEncoding error:&errorLoad];
if (!errorLoad) {
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil];
self.arrayBreedAndSpecies = [[NSMutableArray alloc] initWithArray:jsonArray];
}
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ = %@",@"id_especie", @"2"];
[self.filteredArray setArray: [self.arrayBreedAndSpecies filteredArrayUsingPredicate:predicate]];
NSLog(@"Filter: %@", self.filteredArray);
清楚,是你的字典的描述,如果我想嘗試瑞普你的問題,我將不得不重構你的字典。 .. – 2014-11-24 14:29:40
你好格雷迪,謝謝你的時間......請在http://marcosdegni.com.br/petsistema/teste/raca.php找到完整的字典「。如果你將整個代碼複製到一個iOS項目,你會將它裝載爲arrayBreedAndSprecies ... tks – 2014-11-24 14:33:06
謂詞必須用'@ K'格式化。 – holex 2014-11-24 15:47:08