- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
好吧,我有一个 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/
好吧,我有一个 Popover,其中包含一个 tableView,它由一个用字符串填充的 NSMutableArray 填充。但是在我的 NSMutableArray 中总是有一个 blank/emp
我是一名优秀的程序员,十分优秀!