我试图使用nsarrays和nspredicates来过滤uibtleview的某些单元格。我有一个名为FilterTable的TableViewController类,该类是由FilterCell组成的,该类别是一个子分类的UITATION VIEWCELL。过滤器单元中的数据来自一个具有"专业"属性的用户填写。当用户单击按钮时,我希望表仅显示与具有计算机科学为专业的用户相对应的单元格。我做了一个NSPREDICATE来过滤我用来填充表的用户填充数组,但是当我这样做时,我会得到错误
***终止由于未知的例外" nsunknownekyexception",原因:'[valueforundefinedkey:]:此类不适合关键专业的键值编码。'
>但是,正如我所说的那样,专业是用户专业的属性。
其他解决密钥价值问题的修复程序表明,在接口构建器中未正确连接插座。但是,UserProfile并未直接显示在FilterTable上,因此未通过IB连接,也不希望它成为。取而代之的是,FilterTable具有用于填充FilterCells的UserProfiles数组。我还尝试将FilterCell链接到FilterTable,然后我可以访问与Major相对应的标签,但这给了我一个错误,您无法为重复内容提供出路。
// FROM FilterTable:
...
let predicate = NSPredicate(format: "major = 'Computer Science'")
filteredProfiles = (userProfilesArray as NSArray).filtered(using: predicate) as NSArray
...
// FROM UserProfile
class UserProfileViewController: UIViewController {
var major: String!
...
您尚未指定具有主要属性的元素,请尝试...
userProfilesArray.filter{$0.major == "Computer Science"}
假设您的数组是配置文件对象的数组