- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 iPhone 应用程序中,我使用带有两个实体(Item 和 Property)的简单核心数据模型:
项目
姓名
属性
属性
姓名
值
项目
Item 具有一个属性(名称)和一个一对多关系(属性)。它的逆关系是item。 属性有两个按反比关系的属性。
现在我想在两个级别的 TableView 中显示我的数据。第一个列出了所有项目;当选择一行时,一个新的 UITableViewController 会被推送到我的 UINavigationController 的堆栈上。新的 UITableView 应该显示所选项目的所有属性(即它们的名称)。
为了实现这一点,我使用 NSFetchedResultsController
存储在实例变量中。在第一级,当设置 NSFetchedResultsController 时一切正常:
-(NSFetchedResultsController *) fetchedResultsController {
if (fetchedResultsController) return fetchedResultsController;
// goal: tell the FRC to fetch all item objects.
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:self.moContext];
[fetch setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[fetch setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetch setFetchBatchSize:10];
NSFetchedResultsController *frController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetch managedObjectContext:self.moContext sectionNameKeyPath:nil cacheName:@"cache"];
self.fetchedResultsController = frController;
fetchedResultsController.delegate = self;
[sort release];
[frController release];
[fetch release];
return fetchedResultsController;
}
但是,在第二层UITableView上,我似乎做错了什么。我以类似的方式实现了 fetchedresultsController:
-(NSFetchedResultsController *) fetchedResultsController {
if (fetchedResultsController) return fetchedResultsController;
// goal: tell the FRC to fetch all property objects that belong to the previously selected item
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
// fetch all Property entities.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Property" inManagedObjectContext:self.moContext];
[fetch setEntity:entity];
// limit to those entities that belong to the particular item
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"item.name like '%@'",self.item.name]];
[fetch setPredicate:predicate];
// sort it. Boring.
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[fetch setSortDescriptors:[NSArray arrayWithObject:sort]];
NSError *error = nil;
NSLog(@"%d entities found.",[self.moContext countForFetchRequest:fetch error:&error]);
// logs "3 entities found."; I added those properties before. See below for my saving "problem".
if (error) NSLog("%@",error);
// no error, thus nothing logged.
[fetch setFetchBatchSize:20];
NSFetchedResultsController *frController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetch managedObjectContext:self.moContext sectionNameKeyPath:nil cacheName:@"cache"];
self.fetchedResultsController = frController;
fetchedResultsController.delegate = self;
[sort release];
[frController release];
[fetch release];
return fetchedResultsController;
}
现在事情变得很奇怪了。以上NSLog
语句返回所选项目的正确属性数量。但是,UITableViewDelegate 方法告诉我没有属性:
-(NSInteger) tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
NSLog(@"Found %d properties for item \"%@\". Should have found %d.",[sectionInfo numberOfObjects], self.item.name, [self.item.properties count]);
// logs "Found 0 properties for item "item". Should have found 3."
return [sectionInfo numberOfObjects];
}
相同的实现在第一层工作得很好。
事情变得更奇怪了。我实现了某种 UI 来添加属性。我通过 Property *p = [NSEntityDescription insertNewObjectForEntityForName:@"Property" inManagedObjectContext:self.moContext];
创建一个新的 Property 实例,建立关系并调用[self.moContext save:&error]
。这似乎有效,如 error
仍然是nil
并且对象被保存(我可以在记录 Item 实例时看到属性的数量,见上文)。但是,委托(delegate)方法不会被触发。在我看来,这是由于 fetchRequest(Controller) 可能困惑所致。
有什么想法吗?我是否弄乱了第二个获取请求?这是获取特定实例的一对多关系中的所有实体的正确方法吗?
最佳答案
您需要实际执行 TableView Controller 的获取:
// ...create the fetch results controller...
NSError *fetchRequestError;
BOOL success = [fetchedResultsController performFetch:&fetchRequestError];
关于iphone - 核心数据: Fetch all entities in a to-many-relationship of a particular object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4562343/
如何将以下行分成 3 组,其中“美元”总和为 10。所有行都必须使用,且不得超过一次。 row|dollars 1|1 2|1 3|1 4|1 5|1 6|1 7|3 8|4 9|7 10|10 一个
我试图使用 JSoup 和 Java 来获取满足我的条件的特定标记后的定义列表(或任何标记)的内容。作为示例,我们假设我们有一个 html 文档,如下所示。 PageID: 2816; NS: 0;
我想编写一个应用程序来识别当前的变更集并标记它们。 我知道我们可以通过使用 hg identify 来获取变更集. 获得变更集后,有没有办法标记它? 谢谢 最佳答案 来自 documentation
当在一个元素上触发多个动画时,我如何监听特定的 animationend。在我的例子中,我设计了一个覆盖歌曲列表(包含 li's,当悬停在上面时会触发动画),当单击列表图标时会弹出。然而,问题不在于菜
我目前正在使用来自支持库 (https://developer.android.com/tools/support-library/features.html#v7-palette) 的 Palett
我已将TinyMCE设置为可与“管理”面板一起使用(按照Django Docs http://code.djangoproject.com/wiki/AddWYSIWYGEditor中的说明进行操作)
我通过调用 API 获得响应。就像这样。 [{"id":213132},{"id":241132},{"id":465413},{"id":546351},{"id":164854,"data":[{
我的 makefile 包含这些片段(以及其他片段): SRC = src OBJ = obj DEPS = $(wildcard $(SRC)/*.cpp) # ... all : $(BINARI
当另一个元素包含特定 ID 时,我试图获取一个 jQuery 条件来将类应用于该特定元素。这是我到目前为止所拥有的: $(document).ready(function() { if( $('.c
这个问题已经有答案了: Is floating point math broken? (33 个回答) 已关闭 7 年前。 我想要这样的值 -1,1.02,1.04,1.06,1.08 等...所以在
我正在为寻呼机使用 fragmentpageadapter,我想用新的一组值重新加载特定的 fragment 。 NotifyDataSetcanged 正在重新加载所有 fragment ,我也在使
我有一个名为“checkInGuestUsers”的表,其中有“checkInTime(DATETIME)、checkOutTime(DATETIME)、rooms(varchar)”等列 有特定用户
我正在使用 JMeter 进行负载测试我面临以下问题: 我有一个视频制作网站要测试,我想点击由多个用户创建和播放视频按钮。 最佳答案 本教程介绍了很多用户如何在jmeter中播放 Action ,必须
假设我有以下列表,其中只有字符串。 appliances = ['blender', 'microwave', 'oven', 'toaster'] 如何生成一个由列表组件的元素组成的新列表,该列表仅
我有一个字符串 (Python 2.7.3),它在 Django 中呈现为模板,但我认为这不是 Django 特有的。该字符串来自 docx 文件中的 document.xml 文件。我正在提取呈现它
我正在尝试抓取网站的特定部分 ( https://flightmath.com/from-CDG-to-BLR ),但我无法定位到我需要的元素。 下面是html部分 flight dis
我正在使用 Ubuntu 12。我试图在我的 Ubuntu 机器主目录中搜索单词“SymbolSetThree”。 为此我使用了 grep "SymbolSetThree" /home 简单的显示为
我如何才能获得特定“place_id”的所有图片?。当我检索特定位置的“位置”列表时,我只能访问一个特定的图像“PHOTO_REFERENCE”。。我想通过它的“Places_id”(更具体的搜索)来
我有一个 Student 表,其中包含如下列: | email (PK) | name | 我有一个书 table ,里面有这样的列: | bookid(PK) | title | 我有一个复制表,上
在serverless.yml中,部署配置文件是这样设置的 custom: defaultStage: dev profiles: dev: b***2_dev prod: b***2_pro
我是一名优秀的程序员,十分优秀!