如何计算/遍历NSManagedObject具有的所有属性?

tar*_*eel 2 attributes core-data uitableview ios

我有一个NSManageObject设置为核心数据中的实体.在获取Entity之后,我希望能够获取所有属性并将它们放入NSMutableArray中以填充UITableView.

例如: 实体: 项目

属性: startDate(必填); finishDate(可选); PROJECTNAME(需要); 等等....

如何将所有这些都纳入NSMutableArray?或者有更好的方法来填充UITableView吗?

Dav*_*ong 7

你可以通过询问NSEntityDescription它的NSAttributeDescription对象来得到它:

NSManagedObject *object = ...;
NSEntityDescription *entity = [object entity];
NSDictionary *attributes = [entity attributesByName];

NSMutableArray *values = [NSMutableArray array];
for (NSString *attributeName in attributes) {
  id value = [object valueForKey:attributeName];
  if (value != nil) {
    [values addObject:value];
  }
}
Run Code Online (Sandbox Code Playgroud)

注意:这只包含属性,而不包含关系.如果您只想要关系值,则可以使用-relationshipsByName.如果您想要属性和关系,则可以使用-propertiesByName.

决定这是否是一个好主意是留给读者的练习.