天道酬勤,学无止境

nsfetchedresultscontroller

NSFetchedResultsController 部分本地化排序(NSFetchedResultsController sections localized sorted)

问题 我如何使用 NSFetchedResultsController 和翻译后的排序键和 sectionKeyPath? 问题:我在数据库中的属性“type”中有 ID,如 typeA、typeB、typeC...,而不是直接的值,因为它应该被本地化。 在英语中 typeA=Bird, typeB=Cat, typeC=Dog 在德语中是 Vogel, Katze, Hund。 使用带有排序键和“类型”上的 sectionKeyPath 的 NSFetchedResultController 我收到订单和部分 - typeA - typeB - typeC 接下来我翻译显示,一切都很好用英语: - 鸟 - 猫 - 狗 现在我切换到德语并收到错误的排序顺序 - Vogel - Katze - Hund 因为它仍然按 typeA、typeB、typeC 排序 所以我正在寻找一种方法来本地化 NSFetchedResultsController 的排序。 我尝试了瞬态属性方法,但这对排序键不起作用,因为排序键需要在实体中。 我没有别的想法。 但我不敢相信在本地化所需的派生属性上使用 NSFetchedResultsController 是不可能的? 有相关的讨论,例如将自定义部分与 NSFetchedResultsController 一起使用?

2021-09-16 09:43:28    分类:技术分享    iphone   nsfetchedresultscontroller

iPhone 开发 - CoreData 运行时错误(iPhone Development - CoreData runtime error)

问题 我正面临一个奇怪的 CoreData 问题。 这是日志: 2010-04-07 15:59:36.913 MyProject[263:207] <MyEntity: 0x180370> (entity: MyEntity; id: 0x17e890 <x-coredata://0F55C533-41BD-4F09-9CCA-0CB304CAB065/MyEntity/p380> ; data: <fault>) 2010-04-07 15:59:36.918 MyProject[263:207] *** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'The NSManagedObject with ID:0x17e890 <x-coredata://0F55C533-41BD-4F09-9CCA-0CB304CAB065/MyEntity/p380> has been invalidated.' I have a hierarchy of UITableViewControllers that use NSFetchedResultsController to populate the table, and when a particular row is

2021-09-14 04:27:11    分类:技术分享    iphone   core-data   nsfetchedresultscontroller

NSPredicate 在 NSFetchedResultsController 中表现得很奇怪(NSPredicate acting strange in NSFetchedResultsController)

问题 我觉得这应该很简单,但它的行为很奇怪。 我有 3 个实体,具有这样的关系 实体 A <-->> 实体 B <<--> 实体 C 我有一个 NSFetchedResults 控制器,我正在尝试使用以下谓词过滤实体 A 的结果。 [NSPredicate predicateWithFormat:@"NONE entityB.entityC == %@", self.entityC]; 当我尝试运行该应用程序时,输出未显示任何结果。 我可以将谓词稍微更改为: [NSPredicate predicateWithFormat:@"ANY entityB.entityC == %@", self.entityC]; 它只向我显示我希望它过滤掉的结果。 为什么会这样? 回答1 我想你可能想要一个 SUBQUERY 表达式: @"SUBQUERY(entityB, $x, $x.entityC == %@).@count == 0" 不过,它可能会起作用: @"NOT (ANY entityB.entityC == %@)" (注意:我还没有测试第二个选项)

2021-09-14 01:04:16    分类:技术分享    iphone   core-data   nspredicate   nsfetchedresultscontroller

NSFetchedResultsController 按名字或姓氏排序(NSFetchedResultsController sort by first name or last name)

问题 我基本上是想用名字和姓氏,或者用名字或姓氏来实现 NSSortDescriptor? 但是有一个 NSFetchedResultsController。 我正在从地址簿中读取记录,并希望像地址簿一样显示它们。 记录将根据姓氏的第一个字母分类。 如果没有姓氏,它将按名字排序,如果没有名字,它将按公司排序。 目前我有 - (NSFetchedResultsController *)fetchedResultsController { if (_fetchedResultsController != nil) { return _fetchedResultsController; } NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; // read the contact list NSEntityDescription *entity = [Contact MR_entityDescriptionInContext:[NSManagedObjectContext MR_defaultContext]]; [fetchRequest setEntity:entity]; // sort the results by last name then by first name NSSortDescriptor

2021-09-13 22:34:45    分类:技术分享    ios   objective-c   sorting   nsfetchedresultscontroller

使用 UICollectionView 和 NSFetchedResultsController 不保存(Use UICollectionView and NSFetchedResultsController doesn't save)

问题 我使用在github上的一个项目发现,让我用NSFetchedResultsController和UICollectionView ,该项目是这个 在我的项目我有两个实体,一个核心数据Element和Document ,还有一个关系之一之间的许多Element和Document ,这样的Element可以有更多的Document ,但Document只能有一个Element ,那么我这样做的应用程序AppDelegate : - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. ElementViewController *elementView = [[ElementViewController alloc] initWithNibName:@"ElementViewController" bundle:nil]

2021-09-11 22:36:39    分类:技术分享    iphone   ios   core-data   nsfetchedresultscontroller   uicollectionview

数据未更新的 NSFetchedResultsController(NSFetchedResultsController with data not updating)

问题 我正在制作一个从服务器获取产品列表的应用程序。 然后我将它们存储在核心数据数据库中,并使用 GMGridView 呈现它们,数据源是 NSFetchedResultsController。 当我更改服务器中的产品详细信息时,我希望我的 iOS 应用程序同步并进行必要的更改,因此我实现了 NSFetchedResultsControllerDelegate 方法。 我应该如何正确更新我的 gridView? - (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath { switch(type) { case NSFetchedResultsChangeInsert: [_currentData insertObject:anObject atIndex:newIndexPath.row]; [_currentData removeObjectAtIndex:indexPath.row]; [_gmGridView

2021-09-11 10:58:01    分类:技术分享    iphone   objective-c   ios   core-data   nsfetchedresultscontroller

如何知道 NSFetchedResultsChangeUpdate 更改了哪个属性?(How to know which property is changed for NSFetchedResultsChangeUpdate?)

问题 我认为controller:didChangeObject:atIndexPath:forChangeType:newIndexPath: ,特别是NSFetchedResultsChangeUpdate :它没有告诉你是什么变化导致了这个NSFetchedResultsChangeUpdate 。 我有一个非常复杂的实体。 只有一部分数据用于填充我的表格视图单元格。 我不想为任何不相关的属性更改更新我的单元格——这是一种资源浪费。 那么我怎么知道哪个属性更改导致了这个NSFetchedResultsChangeUpdate以便我可以避免更新我的表格视图单元格,如果它不相关呢? 回答1 NSManagedObject有两种方法。 首先返回一个包含自上次获取或保存对象以来已更改的键和(新)值的字典(这是有效实现的,不会触发关系错误) - (NSDictionary *)changedValues; 第二: - (NSDictionary *)changedValuesForCurrentEvent NS_AVAILABLE(10_7, 5_0); 你通过NSFetchedResultsController调用他们的NSFetchedResultsChangeUpdate通知 回答2 您可以将分配给单元格的值与更改的 NSManagedObject 中的属性值进行比较。

2021-09-11 06:32:56    分类:技术分享    ios   uitableview   core-data   nsfetchedresultscontroller

NSFetchedResultsControllerDelegate animating deletion on wrong indexPath

The premise: I have a UITableViewController that conforms to NSFetchedResultsControllerDelegate. I also have a fetched results controller and managed object context as variables in the controller. My tableView displays a table with one section of core data objects from the fetched results controller. What I'm trying to implement is swipe to delete. The object selected for deletion is actually deleted, however the wrong indexPath is being animated to delete and I don't know why. I currently have the following methods that I believe are relevant: // This method is being called in viewDidLoad

2021-09-09 04:46:43    分类:问答    ios   swift   uitableview   core-data   nsfetchedresultscontroller

Use UICollectionView and NSFetchedResultsController doesn't save

I'm using a project find on github that lets me use NSFetchedResultsController and UICollectionView, the project is this in my project i have a Core Data with two Entity, Element and Document, there is a relationship one to many between Element and Document, so an Element can have more Document, but a Document can have only one Element, then i do this in the AppDelegate: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization

2021-09-08 03:50:26    分类:问答    iphone   ios   core-data   nsfetchedresultscontroller   uicollectionview

iPhone Development - CoreData runtime error

I'm facing a strange CoreData issue. Here's the log: 2010-04-07 15:59:36.913 MyProject[263:207] <MyEntity: 0x180370> (entity: MyEntity; id: 0x17e890 <x-coredata://0F55C533-41BD-4F09-9CCA-0CB304CAB065/MyEntity/p380> ; data: <fault>) 2010-04-07 15:59:36.918 MyProject[263:207] *** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'The NSManagedObject with ID:0x17e890 <x-coredata://0F55C533-41BD-4F09-9CCA-0CB304CAB065/MyEntity/p380> has been invalidated.' I have a hierarchy of UITableViewControllers that use NSFetchedResultsController to populate the table, and

2021-09-07 00:40:13    分类:问答    iphone   core-data   nsfetchedresultscontroller