Ios JSON模型-don';如果使用“方法”,则不添加数组中的所有对象;arrayOfModelsFromDictionaries“;
这是我的JSON数据Ios JSON模型-don';如果使用“方法”,则不添加数组中的所有对象;arrayOfModelsFromDictionaries“;,ios,objective-c,json,jsonmodel,Ios,Objective C,Json,Jsonmodel,这是我的JSON数据 [{ "id": 1, "name":"Soup", "price":200, "isOK":1 }, { "id": 2, "name":"Salad", "price":100, "isOK":0 }] 我创建了JSONModel,如下所示 @interface ProductModel : JSONModel @property (assign, nonatomic) int id; @property
[{
"id": 1,
"name":"Soup",
"price":200,
"isOK":1
},
{
"id": 2,
"name":"Salad",
"price":100,
"isOK":0
}]
我创建了JSONModel,如下所示
@interface ProductModel : JSONModel
@property (assign, nonatomic) int id;
@property (strong, nonatomic) NSString* name;
@property (assign, nonatomic) float price;
@property (assign, nonatomic) BOOL isOK;
@end
其次,
NSArray* modelsArray = [ProductModel arrayOfModelsFromDictionaries:objects];
现在我想要的是
if(isOK)
{
// then add the model into the modelsArray
} else {
// then don't add the model into the modelsArray
}
是否可以在模型文件中的某个位置写入此逻辑,而无需迭代modelsArray,然后根据isOK逐个删除对象
NSArray* modelsArray = [ProductModel arrayOfModelsFromDictionaries:objects];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"isOK == 1"];
NSArray* filtedArray = [modelsArray filteredArrayUsingPredicate:predicate];
这里modelArray包含所有值isOK=0和isOK=1
通过这段代码,您得到了两个不同的数组,其中包含两个类型值,即isOK=1和isOK=0。现在,您可以在需要使用时直接使用数组
输出:
已过滤的\u阵列\u正常
(
{
id = 1;
isOK = 1;
name = Soup;
price = 200;
},
{
id = 3;
isOK = 1;
name = peace;
price = 900;
}
)
(
{
id = 2;
isOK = 0;
name = cake;
price = 200;
},
{
id = 4;
isOK = 0;
name = bread;
price = 800;
}
)
过滤的\u数组\u不正常
(
{
id = 1;
isOK = 1;
name = Soup;
price = 200;
},
{
id = 3;
isOK = 1;
name = peace;
price = 900;
}
)
(
{
id = 2;
isOK = 0;
name = cake;
price = 200;
},
{
id = 4;
isOK = 0;
name = bread;
price = 800;
}
)
这里modelArray包含所有值isOK=0和isOK=1
通过这段代码,您得到了两个不同的数组,其中包含两个类型值,即isOK=1和isOK=0。现在,您可以在需要使用时直接使用数组
输出:
已过滤的\u阵列\u正常
(
{
id = 1;
isOK = 1;
name = Soup;
price = 200;
},
{
id = 3;
isOK = 1;
name = peace;
price = 900;
}
)
(
{
id = 2;
isOK = 0;
name = cake;
price = 200;
},
{
id = 4;
isOK = 0;
name = bread;
price = 800;
}
)
过滤的\u数组\u不正常
(
{
id = 1;
isOK = 1;
name = Soup;
price = 200;
},
{
id = 3;
isOK = 1;
name = peace;
price = 900;
}
)
(
{
id = 2;
isOK = 0;
name = cake;
price = 200;
},
{
id = 4;
isOK = 0;
name = bread;
price = 800;
}
)
使用快速枚举可以做到这一点
for (ProductModel* productModel in objects) {
if(productModel.isOK){
[modelarray addOjbect:productModel];
}
}
使用快速枚举可以做到这一点
for (ProductModel* productModel in objects) {
if(productModel.isOK){
[modelarray addOjbect:productModel];
}
}
是的,您可以使用NSPredicate
NSArray* modelsArray = [ProductModel arrayOfModelsFromDictionaries:objects];
[NSPredicate predicateWithFormat:@"SELF.isOK == %@ && SELF.isOK != nil", @YES];
NSArray* filtedArray = [modelsArray filteredArrayUsingPredicate:predicate];
是的,您可以使用NSPredicate
NSArray* modelsArray = [ProductModel arrayOfModelsFromDictionaries:objects];
[NSPredicate predicateWithFormat:@"SELF.isOK == %@ && SELF.isOK != nil", @YES];
NSArray* filtedArray = [modelsArray filteredArrayUsingPredicate:predicate];
你想从isok值的BACE上的modelsArray中删除对象吗?@balkaran singh这是正确的,但不需要再次迭代数组,你可以使用NSPredicate来完成此操作。你能再解释一下吗?@Haider你在modelsArray中得到数组了吗?你想从isok值的BACE上的modelsArray中删除对象吗?@balkaran singh这是正确的,但是不需要再次迭代数组,您就可以使用NSPredicate进行此操作。您能再解释一点吗?@Haider您在模型中得到数组了吗。无论如何,谢谢你的详细回答。@Haider我只给你2个数组,这样当你想使用它时,你就可以很容易地访问它。好的,我想知道模型文件中是否有一个函数,它将返回true或false,并决定是否将对象添加到数组中。无论如何,谢谢你的详细回答。@Haider我只给你2个数组,这样当你想使用它时,你就可以很容易地访问它。好的,我想知道模型文件中是否有一个函数,它将返回true或false,并决定是否将对象添加到数组中。谢谢你的回答,我想知道模型文件中是否有一个函数,它将返回true或false,并决定是否将对象添加到数组中。谢谢你的回答你想做什么?你想做什么?