ios - NSPredicate 对象模型数组过滤器无法在 Swift 4.0 中崩溃

标签 ios swift xcode filter nspredicate

  1. 我在 swift 4.0 中工作,我在 MutableArray 中有模型对象, NSPredicate 不工作。

                 //Here is code
                //Model class:
                class Modelclass: NSObject
                {
                    var firstName:String!
                    var lastName:String!
                }
    
                // Viewcontroller doing predicate:
                let ary = NSMutableArray()
    
                let userModel          = Modelclass()
                userModel.firstName    = "Arrya"
                userModel.lastName     = "stark"
                ary.add(userModel)
    
                let commitPredicate = NSPredicate(format: "firstName == %@", "Arrya")
                let resultAry       = ary.filtered(using: commitPredicate)
                print(resultAry)
    

最佳答案

我解决了这个问题, 解决方案一:

    //I just added below code in model class

    extension Modelclass {
        @objc override func value(forKey key: String) -> Any? {
            switch key {
            case "firstName":
                return firstName
            case "lastName":
                return lastName
            default:
                return nil
            }
        } 
   }

解决方案 2:

在变量前添加@objc:

        class Modelclass: NSObject
        {
            @objc var firstName:String!
            @objc var lastName:String!

        }

关于ios - NSPredicate 对象模型数组过滤器无法在 Swift 4.0 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48881218/

相关文章:

带按钮的 iPad UIPopoverController,与联系人应用程序相同

ios - Swift 在 map 上添加注释

ios - iOS上的数据共享

ios - 使用 Google Maps SDK for iOS Ver.1.9.0 提交我的应用程序时出现警告

objective-c - objective-c : calculator app - currentNumber = currentNumber * 10 + digit;

ios - Float、Double、Int 是 AnyObject 吗?

ios - 以编程方式快速将单元格 textLabel 对齐到左上角

ios - Swift 3 或 4 保存到自定义相册会创建重复图像

ios - SQLite 数据库安全和篡改

objective-c - "Extra argument ' foo ' in call"或 "' [NSObject : AnyObject]! ' is not a subtype of ' Dictionary<Key, Value> '"