Не следует использовать строковую интерполяцию при создании NSPredicate
с, поскольку, хотя она поддерживается, действительно легко испортить формат предиката.Просто используйте %@
для подстановки значений переменных в предикат.
let allRooms = Users.realm.objects(Rooms.self).filter("placeId == %@ AND floor == %@",placeId, floor)
Некоторые дальнейшие улучшения в вашем коде: не используйте проверку nil
, затем принудительное развертывание, используйте необязательную привязку при работе с Optionals.
if let placeName = placeName , let floor = floor {
Также не добавляйте начальное значение к массивам при их создании, вместо var roomNames = [""]
и var roomTypes = [""]
, делайте
var roomNames = [String]()
var roomTypes = [String]()