【问题标题】:Is there a way to retrieve a set or array of keys for a given NSManagedObject?有没有办法为给定的 NSManagedObject 检索一组或一组键?
【发布时间】:2010-11-24 21:11:59
【问题描述】:

对于任何给定的 NSManagedObject,是否有任何方法可以返回该特定 NSManagedObject 的一组或一组键(属性名称)?我尝试在 NSObject 和 NSManagedObject 文档中四处寻找,但一无所获。我需要像 NSDictionary 'allKeys' 这样的功能,即。

myArrayOfKeys = [myDict allKeys]

我认为必须有一种更简单的方法来处理大量属性,例如。遍历一个键数组。

【问题讨论】:

    标签: iphone objective-c core-data


    【解决方案1】:

    -[NSManagedObject entity] 返回NSEntityDescription。然后,您可以找到它的属性,特别是如果您只想要属性名称,您可以获得-[NSEntityDescription attributesByName],这是一个字典,其中每个键是一个属性名称,每个值是一个NSAttributeDescription

    【讨论】:

      【解决方案2】:

      我根据 James 的建议编写了以下内容,并认为这可能对其他人解决他们的代码问题并使用他的答案有用;谢谢詹姆斯!

      // 来自 Apple 的 Master Detail 模板项目 - (void)insertNewObject:(id)sender {

      //! Apple standard template code
      NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
      NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
      NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
      
      //! Slowburner addition to view the managedObject's keys
      NSEntityDescription *attDesc = [newManagedObject entity];
      NSDictionary *attributesByName = [attDesc attributesByName];
      NSLog(@"Names:%@",[attributesByName allKeys]);
      
      //! shortcut to avoid whatever problem you're troubleshooting
      return;
      

      【讨论】:

        猜你喜欢
        • 2021-09-12
        • 1970-01-01
        • 2019-10-06
        • 2019-06-09
        • 2023-04-07
        • 1970-01-01
        • 2020-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多