我有一个Cocoa项目,其中包含一个保存来自SQLite数据库信息的对象。 现在信息被这个对象存储在内存中,并在用户界面中用于读取和写入新信息。 但是现在我遇到了一个小问题......我决定创建一个新的控制器类来处理NSTableView的动作,并且我想访问其他地方声明的同一个数据库对象。 哪个是访问这些信息的最佳选择?我希望避免在内存中多次加载信息,并且避免在全局变量中使用纯C/C++代码。多类中的变量访问
最好通过查看代码来理解我的观点。 我自然也接受其他解决方案。
我的代码的想法目前是这样的:
FirstClass.h
#import <Foundation/Foundation.h>
#import "DatabaseModel.h"
@interface FirstClass : NSObject {
IBOutlet NSScrollView *informationListTable;
NSMutableArray *informationList;
}
@end
FirstClass.m
#import "FirstClass.h"
@implementation FirstClass
- (void)awakeFromNib{
DatabaseModel *list = [[DatabaseModel alloc] init];
informationList = [[NSMutableArray alloc] initWithArray:[list loadList]];
[list release];
[machinesListTable reloadData];
}
SecondClass.h
#import <Foundation/Foundation.h>
@interface SecondClass : NSObject {
IBOutlet NSTextField *labelName;
NSString *name;
}
- (IBAction)showName:(id)sender;
@end
SecondClass.m
#import "FirstClass.h"
#import "SecondClass.h"
@implementation SecondClass
- (IBAction)showName:(id)sender{
/*
Here name must get something like:
[[FirstClass.informationList objectAtIndex:3] name]
Here labelName must display name.
*/
}
@end
我在哪里可以找到关于单身人士的更多信息? – Apollo 2012-02-08 15:02:27
大多数编程书籍都会描述这个概念,在objective-c上实现,我认为[这是最好的方法](http://cocoasamurai.blogspot.com/2011/04/singletons-your-doing-them-wrong。 html) – wattson12 2012-02-08 15:04:40