我在我的 CoreData 应用程序中创建了一个具有一些属性的实体。想象一个 tableview 和一个绑定的 NSArrayController。我创建(和编辑)我的实体“实例”。我的问题是如何将这些属性的值添加到我的代码中。如果还有更多问题:http: //twitter.com/xP_ablo
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];
现在你可以用数组中的值做你想做的事了。
如果我有这个正确的,你有一个 TableView,绑定到一个绑定到你的数据的 NSArrayController。
简单的方法:在您的类(通常是文件的所有者)中创建一个 IBOutlet,并在 Interface Builder 中将此 IBOutlet 连接到 NSArrayController。然后,您可以从此数组中获取所需的值。