1

我很难复制/粘贴来处理我的自定义托管对象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 和简单自定义数据的出色回答)以及 Apple 文档,但我仍然对此感到困惑。

4

1 回答 1

0

您是否已经看过这个: 使用托管对象

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

于 2013-04-09T12:25:06.467 回答