我已经开始使用 CoreData 编写一个 iPhone 应用程序,并尝试使我的代码库尽可能地可维护。因此,我想避免硬编码字符串,例如:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", aName];
相反,我希望能够编写如下内容:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %@", Person.name, aName];
这样我会让编译器检查是否name
是实体的属性Person
并避免拼写错误。
使用此代码虽然我在编译时收到以下错误:name
在类型的对象上找不到属性Person
Person
属于类型NSManagedObject
并由 Xcode 从我的MyApp.xcdatamodeld
.
name
是实体的简单字符串属性Person
我已经用谷歌搜索并搜索了很多内容来回答这个特定问题。到目前为止,我也尝试过使用property_getName
并且没有运气。NSPropertyDescription
提前感谢您的帮助,
乔斯。