简体   繁体   English

核心数据-相关记录数

[英]Core Data - Count of Related Records

I am new to Core Data programming and am trying to work out the concepts involved. 我是Core Data编程的新手,正在尝试弄清所涉及的概念。 I have an object called a Lease that has a many-to-many relationship with Apartment objects. 我有一个名为Lease的对象,该对象与Apartment对象具有多对多关系。 Given a Lease object, how do I get a count of the related Apartment objects or an NSArray of the related objects? 给定一个Lease对象,如何获得相关的Apartment对象或相关对象的NSArray的计数?

Thank you! 谢谢!

~~Garth ~~地狱

There are a couple different ways: 有几种不同的方法:

  1. Using the generated Core Data accessor: 使用生成的核心数据访问器:

     NSSet * apartments = [myLease apartments]; NSSet *公寓= [myLease公寓];\nNSUInteger numberOfApartments = [apartments count]; NSUInteger numberOfApartments = [公寓数量]; 
  2. Using KeyPaths: 使用KeyPath:

     NSSet * apartments = [myLease valueForKey:@"apartments"]; NSSet *公寓= [myLease valueForKey:@“ apartments”];\nNSUInteger numberOfApartments = [apartments valueForKey:@"@count"]; NSUInteger numberOfApartments = [公寓valueForKey:@“ @ count”]; 
  3. Using KVC (if your class is fully KVC-compliant): 使用KVC(如果您的课程完全兼容KVC):

     NSUInteger numberOfApartments = [myLease countOfApartments]; NSUInteger numberOfApartments = [myLease countOfApartments]; 
  4. Using a fetch request: 使用提取请求:

     NSFetchRequest * r = [[NSFetchRequest alloc] init]; NSFetchRequest * r = [[NSFetchRequest alloc] init];\n[r setEntity:apartmentEntityDescription]; [r setEntity:apartmentEntityDescription];\n[r setPredicate:[NSPredicate predicateWithFormat:@"lease = %@", myLease]]; [r setPredicate:[NSPredicate predicateWithFormat:@“ lease =%@”,myLease]];\nNSArray * apartments = [myManagedObjectContext executeFetchRequest:r error:nil]; NSArray *公寓= [myManagedObjectContext executeFetchRequest:r错误:无];\nNSUInteger numberOfApartments = [myManagedObjectContext countForFetchRequest:r error:nil]; NSUInteger numberOfApartments = [myManagedObjectContext countForFetchRequest:r错误:无];\n[r release]; [r版本]; 

Feel free to mix-and-match those lines. 随意混合和匹配这些行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM