我有一个阵列:
NSArray *itemsArray = [self.tournamentDetails.groups valueForKey:@"Items"];
其中self.tournamentDetails.groups是一个NSArray,使用来自webRequest的JSON字符串进行构建。
项目有时是空的,有时它包含对象。所以我需要一个if语句来检查它是否为空。我尝试了一些不同的东西,如:
if ([itemsArray count]!=0)
if (!itemsArray || !itemsArray.count)
问题是如果我从valueForKey的Items对象为空,那么itemsArray仍然包含一个看起来像这样的对象
<__NSArrayI 0x178abef0>(
<__NSArrayI 0x16618c30>(
)
)
当我的Items对象中的theres项看起来像这样:
<__NSArrayI 0x18262b70>(
<__NSCFArray 0x181e3a40>(
{
BirthDate = 19601006T000000;
ClubName = "Silkeborg Ry Golfklub";
ClubShortName = "";
CompletedResultSum = {
Actual = {
Text = 36;
Value = 36;
};
ToPar = {
Text = "";
Value = 0;
};
};
}
)
)
意味着[itemsArray count]总是等于1或更多,然后在不应该跳转到if语句时。
任何人都知道如何创建一个if语句,如果itemsArray包含“Items:[]”,它将被跳过,如果itemsArray包含“Items:[很多对象]”,它将会运行?
编辑:解决方法是检查第一个索引if([[itemsArray objectAtIndex:0] count]!= 0)然后运行代码。
答案 0 :(得分:1)
试试这个:
if(itemsArray && itemsArray.count>0) //be sure that it has value){
for(NSArray *item in itemsArray){
if(item.count > 0){
// you have an NSDictionary. Will process it
}else{
//item.count == 0 : this is an empty NSArray.
}
}
}
答案 1 :(得分:0)
更简单
for (id obj in itemsArray)
{
if([obj isKindOfClass:[NSArray class]])
{
if(obj.count > 0)
{
//your if condition here
}
}
}