如何从 CoreData-Entities 获取一些值到代码

发布于 2024-07-12 13:43:38 字数 224 浏览 8 评论 0原文

我在 CoreData 应用程序中创建了一个具有某些属性的实体。 想象一个表视图和一个绑定的 NSArrayController。 我用两者创建(和编辑)我的实体“实例”。 我的问题是如何将这些属性的值添加到我的代码中。 如果还有更多问题:http://twitter.com/xP_ablo

I've created in my CoreData app an entity with some attributes. Imagine a tableview and a bound NSArrayController. With both I create (and edit) my entity "instances". My question is how I can get the values of these attributes to my code. If there are more questions: http://twitter.com/xP_ablo

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

失退 2024-07-19 13:43:38

您需要以某种方式获取对 NSArrayController 的引用。 如果您自己加载 NIB,则可以将 IBOutlet 实例添加到设置为 NIB“文件所有者”的类。 当您加载 nib 时,您提供 NIB 的“文件所有者”类的实例作为所有者。 如果您没有自己加载NIB(即它由Cocoa 自动加载为应用程序的MaineMenu nib/xib),则在nib 中创建您自己的类的实例并向该实例添加IBOutlet。 您可以像这样在类中创建 IBOutlet:

@interface MyClass : NSObject { //of course your class doesn't have to be a direct descendent of NSObject
    IBOutlet NSArrayController *arrayController;
}

@property (retain,nonatomic,readwrite) IBOutlet NSArrayController *arrayController;

...

@end

@implementation
@synthesize arrayController;

- (void)dealloc {
    [arrayController release];
    [super dealloc];
}
@end

将类中的 IBOutlet 连接到 NSArrayController(在第一种情况下按住 Controll 键单击“文件所有者”,在上面第二种情况下按住类的实例)并拖动到 NSArrayController。 当您释放鼠标时,您将在拖动源中弹出 IBOutlet。 选择您创建的 IBOutlet(例如上例中的“arrayController”)。

一旦笔尖被加载(即在类中调用 awakeFromNib 之后),您就可以通过插座访问 arrayController:

NSArray *content = [[self arrayController] arrangedObjects];

现在您可以对数组中的值执行您喜欢的操作。

You need to somehow get a reference to the NSArrayController. If you are loading the NIB yourself, you can add an IBOutlet instance to the class that is set as the NIBs "File Owner". When you load a nib, you supply the instance of the NIB's "File Owner" class as the owner. If you are not loading the NIB yourself (i.e. it's loaded automatically by Cocoa as the MaineMenu nib/xib of your app), then create an instance of your own class in the nib and add an IBOutlet to that instance. You create an IBOutlet in your class like this:

@interface MyClass : NSObject { //of course your class doesn't have to be a direct descendent of NSObject
    IBOutlet NSArrayController *arrayController;
}

@property (retain,nonatomic,readwrite) IBOutlet NSArrayController *arrayController;

...

@end

@implementation
@synthesize arrayController;

- (void)dealloc {
    [arrayController release];
    [super dealloc];
}
@end

Connect the IBOutlet in your class to the NSArrayController (controll-click on the File Owner in the first case or the instance of your class in the second case above) and drag to the NSArrayController. When you release the mouse, you'll get a pop-up of the IBOutlets in the drag source. Select the IBOutlet you created (e.g. "arrayController" in the example above).

One the nib is loaded (i.e. after awakeFromNib is called in your class), you can access the arrayController via the outlet:

NSArray *content = [[self arrayController] arrangedObjects];

and you can now do what you please with the values in the array.

幸福丶如此 2024-07-19 13:43:38

如果我的说法正确,那么您就有一个 TableView,它绑定到一个 NSArrayController,而 NSArrayController 又绑定到您的数据。

简单的方法:在您的类(通常是文件的所有者)中创建一个 IBOutlet,并在 Interface Builder 中将此 IBOutlet 连接到 NSArrayController。 然后您可以从该数组中获取所需的值。

If I have this correct, you have a TableView, bound to an NSArrayController which is bound to your data.

The simple way: Create an IBOutlet in your Class (usually the File's Owner) and in Interface Builder connect this IBOutlet to the NSArrayController. You can then get the values you need from this array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文