gpt4 book ai didi

cocoa - 在核心数据中复制/粘贴自定义托管对象

转载 作者:行者123 更新时间:2023-12-03 17:23:05 25 4
gpt4 key购买 nike

我很难在我的自定义托管对象 Person 上进行复制/粘贴。对象包含属性和关系。该对象应提供 objectID。我打算实现粘贴生成一个新对象,然后填写复制的 Person 中的信息。

复制 objectID 可能有效。我确信粘贴不起作用。我在 Person 类中实现了以下方法,以尝试复制/粘贴对象:

#pragma mark --- Copy functionality

-(id)pasteboardPropertyListForType:(NSString *)type
{
if ( [type isEqualToString:@"my.company.person"])
{
NSManagedObjectID *oid = self.objectID;
NSURL *uidURL = [oid URIRepresentation];
return [uidURL absoluteString];
}
return nil;
}

-(NSArray *)writableTypesForPasteboard:(NSPasteboard *)pasteboard
{
return @[@"my.company.person"];
}

+ (NSPasteboardWritingOptions)writingOptionsForType:(NSString *)type pasteboard:(NSPasteboard *)pasteboard
{
if ( [type isEqualToString:@"my.company.person"])
{
return NSPasteboardWritingPromised;
}
return nil;
}

并进行粘贴:

#pragma mark --- Paste functionality

+(NSArray *)readableTypesForPasteboard:(NSPasteboard *)pasteboard
{
return @[@"my.company.person"];
}

+ (NSPasteboardReadingOptions)readingOptionsForType:(NSString *)type pasteboard:(NSPasteboard *)pasteboard
{
if ( [type isEqualToString:@"my.company.person"])
{
return NSPasteboardReadingAsString;
}
return nil;
}

- (id)initWithPasteboardPropertyList:(id)propertyList ofType:(NSString *)type
{
if ( [type isEqualToString:@"my.company.person"])
{
...
}
return nil;
}

我应该如何进行这里?我不知所措,阅读了许多 stackoverflow 问答(例如 Peter Hosey 对 NSPasteboard and simple custom data 的精彩回答)以及 Apple 文档,但仍然让我难住了。

最佳答案

你已经看过这个了吗: Using Managed Objects

我不确定您所说的“我需要返回一个 Person 对象,但我没有托管对象上下文”是什么意思。您的上下文是您创建事物的便笺簿。

关于cocoa - 在核心数据中复制/粘贴自定义托管对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15880266/

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