Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何根据项目内容从NSArray中删除项目_Ios_Objective C_Nsarray_Nspredicate - Fatal编程技术网

Ios 如何根据项目内容从NSArray中删除项目

Ios 如何根据项目内容从NSArray中删除项目,ios,objective-c,nsarray,nspredicate,Ios,Objective C,Nsarray,Nspredicate,我正在创建NSString的NSArray,但是输入的其中一个数组是一组引号: "" 我想知道热从我的数组中排除这些,我已经尝试使用谓词,但它不起作用 这就是我的代码的样子: NSString *tempSymbolsString = [tempAxesDictionary objectForKey:@"Symbols"]; NSArray *tempSymbolsArray = [tempSymbolsString componentsSeparatedByString:@"

我正在创建NSString的NSArray,但是输入的其中一个数组是一组引号:

""
我想知道热从我的数组中排除这些,我已经尝试使用谓词,但它不起作用

这就是我的代码的样子:

NSString *tempSymbolsString = [tempAxesDictionary objectForKey:@"Symbols"];
        NSArray *tempSymbolsArray = [tempSymbolsString componentsSeparatedByString:@";"];
        tempSymbolsArray = [symbolsArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != """""]];
        NSLog(@"%@", tempSymbolsArray);
自己动手:

NSString *tempSymbolsString = tempAxesDictionary[@"Symbols"];
NSMutableArray *symbolsArray = [[tempSymbolsString componentsSeparatedByString:@";"] mutableCopy];
for (NSUInteger i = symbolsArray.count; i > 0; i--) {
    if ([symbolsArray[i - 1] isEqualToString:@"\"\""]) {
        [symbolsArray removeObjectAtIndex:i - 1];
    }
}
最后,
symbolsArray
将包含除那些匹配的
之外的所有值

顺便说一句,您的原始谓词可能需要一系列转义:

[NSPredicate predicateWithFormat:@"SELF != \"\\\"\\\"\""]

其实比这还要简单。由于数组中只有字符串,请创建一个可变副本并删除所有出现的
”。也许是这样的:

NSMutableArray *temp = [tempSymbolsArray mutableCopy];
[temp removeObject:@"\"\""];

这是因为
removeObject:
将通过
isEqual:
比较对象,并删除任何匹配项。

Duh!这比我迭代数组的方法更简单。好的,也许我错了。出于某种原因,这就是我的数组的外观。1、2、3、4“,我认为“”使for循环运行了一到多次。但你给我的代码并没有删除“”好吧,这是可行的。我发现字符串操作的CommaseByString有一个;最后。。所以它没有在数组中添加任何内容,所以我只在我的计数中添加了-1。@HurkNburkS听起来你有一个空字符串,而不是一个带引号的空字符串。将代码更改为
[temp removeObject:@”“