我想映射的字符串字典從JSON獲取到符合KVC的NSManagedObject,我可以成功使用setValue: forKey:
,但我無法看到我如何映射類型。iOS的KVC DRY突變
例如,我不應該能夠設置一個日期到任何隨機字符串:Printing description of myDate: asdfsadf
然而它的工作。
我看了一下https://stackoverflow.com/a/5345023/828859,它提供了一些有用的答案。我可以進入併爲每一個屬性創建驗證......但這看起來並不很乾,因爲生病時必須驗證每個日期並在每次有日期時單獨設置出價值。
在使用setValue: forKey:
之前,我寧願按類型進行變異,但我不知道如何區分屬性類型。
我想要做什麼:
switch([object typeforkey:key]){
case @"NSDate":
//...
value = mutatedDate
//...
}
[object setValue:value forKey:key];
是的,但是我不清楚在我的問題中,字典來自JSON響應,所以它是一個字符串字典。 – MrJD
啊,我明白了。我不認爲有一種乾淨的方式來做你想做的事。你或者需要知道密鑰提前什麼時候以及它們的類型,並根據這些信息切換對象類型,或者你需要做大量的字符串掃描來確定你正在使用的是什麼,然後進行驗證。 –