gpt4 book ai didi

ios - 如何测试 NSMutableArray 中是否有 _NSCFConstantString?

转载 作者:搜寻专家 更新时间:2023-10-30 20:19:17 26 4
gpt4 key购买 nike

好吧,我有一个 Popover,其中包含一个 tableView,它由一个用字符串填充的 NSMutableArray 填充。但是在我的 NSMutableArray 中总是有一个 blank/empty 字符串,而在我的 popover 表中总是有一个空单元格。我单步执行了我的项目,发现空字符串是一个字符串常量(_NSCFConstantString)。

我尝试通过简单的空字符串测试来消除空字符串的出现:

[str isEqualToString:@""] 

但这行不通,我假设是因为我数组中的空字符串的类型是 _NSCFConstantString...?

所以我想知道是否有一种方法可以测试对象是否属于 _NSCFConstantString 类型,或者你们是否有更好的方法来测试字符串是否为空...

这是与我的问题相关的完整代码:

    NSString *str;
for (int i = 0; i < [self.flattenedDocList count]; i++) {
str = [self.flattenedDocList objectAtIndex:i];
if(![str isKindOfClass:[NSString class]]){
[self.flattenedDocList removeObject: str];
NSLog(@"Just Deleted:%@",str);
}else if([str isEqualToString:@""]){
[self.flattenedDocList removeObject: str];
NSLog(@"Just Deleted:%@",str);
}
}

第一个 if 语句是检查是否删除数组中的任何 NSNull 对象。不幸的是,这并没有摆脱字符串常量:/

谢谢,非常感谢任何帮助。

最佳答案

好吧,我犯了一个菜鸟错误,在枚举时修改了一个 NSMutableArray。此外,H2CO3 是正确的,_NSCFConstantString 是 NSString 的具体子类,因此我们可以在它们上使用所有 NSString 方法。

这是在枚举时修改 NSMutableArray 的好方法。

NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray:self.docList];
self.listForThePopover = [[NSMutableArray alloc] init];

NSString *str;
for (int i = 0; i < [tempArray count]; i++) {

str = [tempArray objectAtIndex:i];
//NSLog(@"~str:%@~",str);

//check if the str is of the NSString class AND if it's NOT empty
if(([str isKindOfClass:[NSString class]]) && (![str isEqualToString:@""])){

//add the string to the list that we want to actually use.
[self.listForThePopover addObject:str];
//NSLog(@"Just Added:%@",str);
}
}

关于ios - 如何测试 NSMutableArray 中是否有 _NSCFConstantString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17500060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com