Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.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 使用NSPredicate筛选数组,查看其是否包含Swift中的整数_Ios_Swift_Nspredicate - Fatal编程技术网

Ios 使用NSPredicate筛选数组,查看其是否包含Swift中的整数

Ios 使用NSPredicate筛选数组,查看其是否包含Swift中的整数,ios,swift,nspredicate,Ios,Swift,Nspredicate,大家好,我正在努力学习更多关于NSPredicate的知识,这相当困难,因为资源仍然基于ObjC。如果可能的话,我想要一个快速的答案 基本上,我正在尝试使用NSPredicate查看下面的数组是否包含男性用户的代码号“9”。 因此,我想过滤下面的人物数组,只保留包含数字9的数组 var malePerson1:[Int] = [1,4,5,6,11,9] var malePerson2:[Int] = [3,5,6,7,12,9] var femalePerson3:[Int] = [3,5,6

大家好,我正在努力学习更多关于NSPredicate的知识,这相当困难,因为资源仍然基于ObjC。如果可能的话,我想要一个快速的答案

基本上,我正在尝试使用NSPredicate查看下面的数组是否包含男性用户的代码号“9”。 因此,我想过滤下面的
人物
数组,只保留包含数字9的数组

var malePerson1:[Int] = [1,4,5,6,11,9]
var malePerson2:[Int] = [3,5,6,7,12,9]
var femalePerson3:[Int] = [3,5,6,7,12,10]

var people = [malePerson1, malePerson2, femalePerson3]
我已使用过滤器使解决方案运行良好(见下文)

但是我如何使用谓词做类似的事情呢

下面的操作不起作用-resultMale只返回一个空数组,而它应该包含两个数组:
[maleperson1,maleperson2]
。我认为问题在于它检查“people”数组中是否包含9,而不是检查所包含数组的内容

你知道如何使用NSPredicate过滤数组中的整数吗

let malePred = NSPredicate(format: "9 IN %@",people) 
//9 is the code for Male user
var resultMale = (people as NSArray).filtered(using: malePred)

您可以使用
ANY
将每个嵌套数组与
NSPredicate
进行比较

let malePred = NSPredicate(format: "ANY self == 9")

您可以使用
ANY
将每个嵌套数组与
NSPredicate
进行比较

let malePred = NSPredicate(format: "ANY self == 9")

这不是重复-潜在的解决方案在objective C中(和非常旧的语法)这些解决方案在Swift上不起作用谓词语法对于Swift和objective-C是相同的。对于您的情况,无论您使用哪种语言,它都是“ANY self==value”。这不是重复-潜在的解决方案在objective C中(和非常古老的语法)这些解决方案在Swift上不起作用Swift和Objective-C的谓词语法是相同的。在您的情况下,无论您使用哪种语言,它都是“ANY self==value”。Awesome@Nirav。-出于兴趣,如果我想在9,10上过滤,它会起作用吗?ANY self==[9,10]“@MobileBloke Welcome:),您可以使用中的
来实现该
让malePred=NSPredicate(格式:“任何自己在%@,[9,10])
Oops!-完成了!谢谢你的帮助。你从哪里学到了谓词的所有知识?文档似乎很薄弱。@MobileBloke这两个链接对你很有帮助,而且@Nirav.-出于兴趣,如果我想在9,10上过滤,它会起作用吗?ANY self==[9,10]“@MobileBloke Welcome mate:),您可以在
中使用
,以便
让malePred=NSPredicate(格式:“ANY self IN%@,[9,10])
Oops!-完成!谢谢你的帮助。你从哪里学到谓词的所有知识?文档似乎很薄弱。@MobileBloke这两个链接帮助您和