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

时间:2009-01-29 20:33:13

标签: cocoa core-data key-value-observing nsarraycontroller

我在CoreData应用程序中创建了一个具有某些属性的实体。想象一下tableview和绑定的NSArrayController。我同时创建(和编辑)我的实体“实例”。我的问题是如何将这些属性的值传递给我的代码。如果还有其他问题:http://twitter.com/xP_ablo

2 个答案:

答案 0 :(得分:2)

您需要以某种方式获取对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(在第一种情况下控制单击文件所有者或在上面第二种情况下单击类的实例)并拖动到NSArrayController。释放鼠标时,您将在拖动源中弹出IBOutlets。选择您创建的IBOutlet(例如上面示例中的“arrayController”)。

加载一个笔尖(即在你的类中调用awakeFromNib之后),你可以通过插座访问arrayController:

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

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

答案 1 :(得分:1)

如果我有正确的话,你有一个TableView,绑定到绑定到你的数据的NSArrayController。

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

相关问题