簡體   English   中英

Swift Core Data NSPredicate靜態字符串問題

[英]Swift Core Data NSPredicate static string issue

我想使謂詞更靈活地進行更改。 我在源代碼中有很多這樣的字符串:

let predicate = NSPredicate(format: "bodyPart.name = %@", name)

let filteredExercises = ExerciseEntity.mr_findAll(with: predicate)

但是正如您看到的,例如,某天我是否將BodyPart名稱更改為MuscleGroup,它將導致以下問題:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath bodyPart.name not found in entity <NSSQLEntity ExerciseEntity id=5>'

我正在尋找具有以下關鍵路徑的解決方案

let predicate = NSPredicate(format: "%@ = %@", \BodyPart.name, name)

使用%K替代密鑰路徑

let predicate = NSPredicate(format: "%K = %@", #keyPath(BodyPart.name), name)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM