循环Swift中的Realm Object字段(Loop through Realm Object fields in Swift)

我有一个Realm对象

class CoursesModel: Object { dynamic var courseName = "" dynamic var par3Field = 0 dynamic var par4Field = 0 dynamic var par5Field = 0

}

当某人输入课程名称时,我想在将其写入Realm之前检查它是否已经存在。

你能告诉我我做错了什么,因为它似乎没有循环。

class func compareCourse(name : String) -> Bool { let c = name do { let realm = try Realm() let course = realm.objects(CoursesModel) for course in course { if course == c { print("course = \(course)") print("c = \(c)") return true } else { return false } } } catch { // return nil } return false }

任何帮助将不胜感激。

编辑 - 工作代码在这里

class func compareCourse(name : String) -> Bool { let c = name do { let realm = try Realm() let course = realm.objects(CoursesModel) for course in course { let a = course.courseName print("Model Course = \(a)") print("Passed Course = \(c)") if a == c { return true } } } catch { // return nil } return false }

I have a Realm Object

class CoursesModel: Object { dynamic var courseName = "" dynamic var par3Field = 0 dynamic var par4Field = 0 dynamic var par5Field = 0

}

When somebody enters the course name I want to check whether it already exists before writing it to Realm.

Can you please tell me what I'm doing wrong because it doesn't seem to loop through.

class func compareCourse(name : String) -> Bool { let c = name do { let realm = try Realm() let course = realm.objects(CoursesModel) for course in course { if course == c { print("course = \(course)") print("c = \(c)") return true } else { return false } } } catch { // return nil } return false }

Any help will be greatly appreciated.

EDIT - WORKING CODE HERE

class func compareCourse(name : String) -> Bool { let c = name do { let realm = try Realm() let course = realm.objects(CoursesModel) for course in course { let a = course.courseName print("Model Course = \(a)") print("Passed Course = \(c)") if a == c { return true } } } catch { // return nil } return false }

最满意答案

您将在循环的两个分支中返回,它会立即退出函数。 你不想在第一次失败时返回false,但是只有在失败之后才会返回false(我认为)。

You are returning in both branches of the loop, which immediately exits out of the function. You do not want to return false on the first failure, but only after all have failed (I think).

更多推荐