gpt4 book ai didi

cocoa - NSManagedObject setValue问题(核心数据)

转载 作者:行者123 更新时间:2023-12-03 16:18:20 25 4
gpt4 key购买 nike

我希望编辑核心数据中的现有记录。目前,我有这段代码,但它创建了一条新记录(并将正确的数据插入正确的列):

NSManagedObjectContext *context = [[NSApp delegate] managedObjectContext];
NSManagedObject *instrument = nil;



instrument = [NSEntityDescription insertNewObjectForEntityForName: @"Instrument"
inManagedObjectContext: context];

[instrument setValue:[NSNumber numberWithInt:quantityInStockInstruments]
forKey: @"quantity"];

结果将如下所示:

Instrument | Value | Quantity

Violin | £25 | 9

| | 8 <<< This is the new record that is created, instead of setting the
quantity of violin from '9' to '8'

我希望程序编辑当前突出显示的行的数量列(在本例中是“ fiddle ”行。我该如何执行此操作?

最佳答案

正如 refulgentis 所说,线索就在选择器的名称中。您正在添加一个新对象。

比使用表格更好的方法是使用 NSArrayController 的 selectedObjects 。举个例子(为了清楚起见,这是冗长的,我已经把它从我的脑海中写下来了):

// Get the selected objects from the NSArrayController.
// There may be more than one object selected, so this needs to be accounted for.
NSArray *selectedObjectsArray = [yourArrayController selectedObjects];

// Get the first object in the array, this is the one that will have it's values changed.
id firstSelectedObject = [selectedObjectsArray objectAtIndex:0];

// Change a value in a KVC compliant way
[firstSelectedObject setValue:newValue forKey:@"keyValueToChange"];

已编辑添加在评论后

您是否有阵列 Controller 的 socket 并在 Interface Builder 中正确连接它?

无论如何,该代码对我有用。这是 example project显示它正在工作。

关于cocoa - NSManagedObject setValue问题(核心数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1683099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com