Ios 从NSSet创建一个唯一的NSArray,但不包含空值

Ios 从NSSet创建一个唯一的NSArray,但不包含空值,ios,nsmutablearray,nsarray,nsset,Ios,Nsmutablearray,Nsarray,Nsset,我正在尝试创建一个NSArray,其中包含排序后的唯一值,不包括我当前拥有的NSDictionary数组中的空值。但是,除了删除空值之外,我可以做任何事情。我如何做到这一点 这是我目前拥有的代码 NSSet *uniqueAreaSet = [NSSet setWithArray:[tempArray valueForKey:@"stage"]]; NSArray *tempAreaArray = [uniqueAreaSet allObjects]; NSArray *sort

我正在尝试创建一个NSArray,其中包含排序后的唯一值,不包括我当前拥有的NSDictionary数组中的空值。但是,除了删除空值之外,我可以做任何事情。我如何做到这一点

这是我目前拥有的代码

NSSet *uniqueAreaSet = [NSSet setWithArray:[tempArray valueForKey:@"stage"]];
    NSArray *tempAreaArray = [uniqueAreaSet allObjects];
    NSArray *sortedAreaArray = [tempAreaArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

要删除空值(如果它们实际上是NSNull对象),可以使用以下方法:

sortedAreaArray = [sortedAreaArray filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
        return ![evaluatedObject isEqual:[NSNull null]];
    }]];

你需要更好地解释你的问题。您的数据结构是什么样子的?你有一系列字典。从您的代码来看,似乎您正试图从每个字典中的“stage”条目构建一个数组。为什么要将其转换为一个集合,然后再转换回一个数组?您正在尝试使用NSSet删除或复制值吗?您正在使用的容器对象中没有一个允许nil作为条目,那么您的空值来自何处?或者您指的是NSNull(这是一个用作nil占位符的特殊对象)