我有一個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