gpt4 book ai didi

cocoa 绑定(bind) : NSObjectController not KVC-compliant for the representedObject property

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

我已经阅读了一堆 Core Data 示例和 Apple 文档。经过一整天的工作,我已经走到了墙边。

我想要发生的就是在文本字段中输入一些文本,保存文件,再次打开它并查看其中的文本。

我制作了一个非常非常简单的基于 Core Data 文档的应用程序来进行实验。详情如下:

1) 数据模型有一个实体(“Note”)和一个属性(“title”),该属性是一个 NSString。

2) 我创建了一个 View Controller “ManagingViewController”,它将名为“NoteView”的 View 加载到 MyDocument.xib 中的框中,没有出现问题。 NoteView.nib 中只有一个 NSTextField。

ManagingViewController.h

#import <Cocoa/Cocoa.h>
#import "Note.h"

@interface ManagingViewController : NSViewController {
NSManagedObjectContext *managedObjectContext;
IBOutlet NSTextField *title;

}
@property (retain) NSManagedObjectContext *managedObjectContext;
@property (retain, readwrite) NSTextField *title;
@end

和ManagingViewController.m

#import "ManagingViewController.h"
#import "Note.h"

@implementation ManagingViewController
@synthesize managedObjectContext;
@synthesize title;

- (id)init
{

if (![super initWithNibName:@"NoteView" bundle:nil]) {
return nil;
}

return self;

}
@end

我有一个名为“Note.h”的 NSManagedObject

#import <CoreData/CoreData.h>
#import "ManagingViewController.h"
@interface Note : NSManagedObject
{
}
@property (nonatomic, retain) NSString * title;
@end

和 .m 文件:

#import "Note.h"
#import "ManagingViewController.h"
@implementation Note
@dynamic title;
@end

在 NoteView.nib 中我的:

1) 文件的所有者是ManagingViewController,并且文本字段和 View 的IBOutlet 已连接。

2) 我将一个 NSObjectController 对象拖到名为“Note Object Controller”的 Interface Builder 文档窗口中。我将模式设置为“实体”,将实体名称设置为“注释”。选中“准备内容”和“可编辑”。 (我已经完成并能够找到的所有示例都在这里使用 NSArrayController。我不需要数组 Controller ,对吧?我确实希望能够为同一个应用程序打开多个窗口,但我仍然不认为我可以需要一个数组 Controller 吗?所有示例都有一个 NSTableView 和一个添加按钮。这里不需要添加按钮,因为我没有 NSTableView)。

3)值的 NSTextView 绑定(bind)我将其绑定(bind)到“Note Object Controller”, Controller 键为representedObject,模型键路径为title。

当我运行我的应用程序时,我得到

[<NSObjectController 0x20004c200> addObserver:<NSTextValueBinder 0x20009eee0>
forKeyPath:@"representedObject.title" options:0x0 context:0x20009f380] was
sent to an object that is not KVC-compliant for the "representedObject" property.

我做错了什么?我想在文本字段中输入内容,保存文件,再次打开它并查看其中的文本。

最佳答案

[<NSObjectController 0x20004c200> addObserver:<NSTextValueBinder 0x20009eee0> forKeyPath:@"representedObject.title" options:0x0 context:0x20009f380] was sent to an object that is not KVC-compliant for the "representedObject" property.

What am I doing wrong?

错误消息告诉您做错了什么:您正在尝试绑定(bind)到对象 Controller 的 representedObject 属性,但它没有。绑定(bind)到不存在的属性无法工作。

Note 是 NSObjectController 的内容对象,因此这是您需要绑定(bind)到的 Controller 键:content

关于 cocoa 绑定(bind) : NSObjectController not KVC-compliant for the representedObject property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972326/

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