搜索并获取领域数据。无法解析格式字符串“”

Search and get Realm data. Unable to parse the format string ""

我想搜索和检索 Realm 数据。
此消息已返回。

Unable to parse the format string "parts_name == 脚"

我在这里做了一切。
Xcode12.3 RealmSwift10.2.0

menuName = realm.objects(MenuTable.self).filter("parts_name == \(selectedParts)")
menuName = realm.objects(MenuTable.self).filter("parts_name == %@", selectedParts)
menuName = realm.objects(MenuTable.self).filter("parts_name == %@", "selectedParts")
menuName = realm.objects(MenuTable.self).filter(NSPredicate(format: "%@ == parts_name", "selectedParts"))

是相关代码。

class MenuTable: Object {
    @objc dynamic var id: Int = 0
    @objc dynamic var menu_name: String? = ""
    @objc dynamic var parts_name: String = ""

    override static func primaryKey() -> String? {
        return "id"
    }
    static func newID(realm: Realm) -> Int {
        if let training = realm.objects(MenuTable.self).sorted(byKeyPath: "id").last {
            return training.id + 1
        } else {
            return 1
        }
    }
    static func create(realm: Realm) -> MenuTable {
        let training: MenuTable = MenuTable()
        training.id = newID(realm: realm)
        return training
    }
}

我刚刚在这里添加了这个。

@objc dynamic var parts_name: String = ""

是相关代码。

    var partsDataList: [String] = [
        "脚","背中","胸","肩","三頭","二頭","腹"
    ]
    var selectedParts = ""
    
    var menuName: Results<MenuTable>!
    override func viewDidLoad() {
        super.viewDidLoad()
        selectedParts = partsDataList[0]
    }
    func pickerView(_ pickerView: UIPickerView,
                    numberOfRowsInComponent component: Int) -> Int {
        
        let realm = try! Realm()
        
        if pickerView.tag == 1{
            return partsDataList.count
        } else if pickerView.tag == 2{
            
            menuName = realm.objects(MenuTable.self).filter("parts_name == \(selectedParts)")
            
            return menuName.count
        } else {
            return 0
        }
    }

这解决了。

menuName = realm.objects(MenuTable.self).filter(NSPredicate(format: "parts_name == %@", selectedParts))