希望我能坚持下去。
我将UUID字符串通过segue传递给下一个VC。这肯定有效,因为我在viewDidLoad上打印它。
我想要做的是使用该UUID(workoutID)检索对象。我遇到了崩溃:
"由于未捕获的异常终止应用'无效的值',原因:'属性类型字符串的预期对象' workoutID'对于类型' WorkoutSessionObject'的对象,但收到:0'"
当我尝试运行下面的代码时,我已经从其他与搜索相关的问题中进行了改编(我发现查询领域很难让我的头脑清醒):
class WorkoutSummaryController: UIViewController, UITableViewDelegate, UITableViewDataSource {
// Holder for my UUID passed via Segue which is working
var workoutID = UUID().uuidString
override func viewDidLoad() {
print(workoutID)
// Set up the query to retrieve the object with the UUID that has been passed
let predicate = NSPredicate(format: "workoutID = %A", workoutID)
// Run the query and print the result which crashes
let test = try! Realm().objects(WorkoutSessionObject.self).filter(predicate)
print (test)
super.viewDidLoad()
}
}
任何帮助表示赞赏: - )
答案 0 :(得分:1)
您的NSPredicate
格式存在缺陷。您应该使用%@
替换变量和%K
替换密钥路径。
let predicate = NSPredicate(format: "workoutID = %@", workoutID)