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

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

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

最佳答案

您需要以某种方式获取对 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”)。

加载 nib 后(即在类中调用 awakeFromNib 后),您可以通过 socket 访问 arrayController:

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

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

关于cocoa - 如何从 CoreData-Entities 获取一些值到代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/493285/

相关文章:

cocoa - Cocoa 中保存唯一文件的默认位置

objective-c - @synchronized block 是否保证释放它们的锁?

iphone - iPhone 应用程序中 View Controller 必须始终有委托(delegate)吗?

arrays - 显示核心数据库中 PickerView 的值

ios - 如何在 Swift 中使用 UIDatePicker 仅在没有日期组件的情况下将时间存储在 CoreData 中?

cocoa - 您知道网上有任何键值编码和键值观察 session 视频吗?

cocoa - EXEC_BAD_ACCESS(代码=1,地址=0x10)

iphone - 使用核心数据实体更新表节标题的有效方法?

iphone - iPhone应用程序由于KVO而崩溃

objective-c - KVO 和 NSMutableArray