我有一个数组数组。我想检查我的内部数组是否为空。我正在检查数组的对象是否为空字符串。 这是我的代码:
NSMutableArray *newArray = [NSMutableArray array];
NSMutableArray *selectArray = [NSMutableArray array];
for (int i = 0; i < [newArray count]; i++)
{
NSArray *arr = [newArray objectAtIndex:i];
if ([arr count] > 0)
{
NSString *str = [arr objectAtIndex:0];
if (![str isEqualToString:@""])
{
[selectArray addObject:str];
}
}
}
我的newArray是array的数组。我想在selectArray中添加非空的字符串。但是,selectArray中只添加了第0个索引对象多次。 请建议我,我在哪里做错了。谢谢
答案 0 :(得分:1)
那是因为你刚刚获得newArray元素的第0个元素,我的意思是这一行
NSString *str = [arr objectAtIndex:0];
你应该在你的代码中添加另一个。使用此代码而不是您的代码
NSMutableArray *newArray = [NSMutableArray array];
NSMutableArray *selectArray = [NSMutableArray array];
for (int i = 0; i < [newArray count]; i++){
NSArray *arr = [newArray objectAtIndex:i];
for (int j = 0; j < [arr count]; j++){
NSString *str = [arr objectAtIndex:j];
if (![str isEqualToString:@""]){
[selectArray addObject:str];
}
}
}
答案 1 :(得分:0)
使用此代码您无需创建任何额外变量。
for (int i = 0; i < [newArray count]; i++)
{
for (int j = 0; j < [[newArray objectAtIndex:i] count]; j++)
{
if (![[[newArray objectAtIndex:i] objectAtIndex:j] isEqualToString:@""])
{
[selectArray addObject:str];
}
}
}
答案 2 :(得分:0)
您可以使用以下泛型函数来检查任何值或对象是空还是空。
-(BOOL)isEmpty:(id)object{
return object == nil
|| [object isKindOfClass:[NSNull class]]
|| ([object respondsToSelector:@selector(length)]
&& [(NSData *)object length] == 0)
|| ([object respondsToSelector:@selector(count)]
&& [(NSArray *)object count] == 0);
}
答案 3 :(得分:0)
你可以试试这个
NSMutableArray *newArray = [NSMutableArray array];
NSMutableArray *selectArray = [NSMutableArray array];
for (NSArray *arrayFromNewArray in newArray) {
if ([arrayFromNewArray count] > 0)
{
NSString *str = [arrayFromNewArray firstObject];
if (![str isEqualToString:@""])
{
[selectArray addObject:str];
}
}
}
答案 4 :(得分:-1)
你应该
NSMutableArray *newArray = [NSMutableArray array];
NSMutableArray *selectArray = [NSMutableArray array];
for (int i = 0; i < [newArray count]; i++)
{
NSArray *arr = [newArray objectAtIndex:i];
for (int j = 0; j < [arr count]; j++)
{
NSString *str = [arr objectAtIndex:j];
if (![str isEqualToString:@""])
{
[selectArray addObject:str];
}
}
}
问题是你忘记了第二个循环:)让我知道我是否正确。