使用单例创建可由多个视图访问的数组
|
这是一个经典的问题。
我想从我的应用程序中的任何位置访问对象数组。我也想使用单例。我的问题是:
我在哪里实例化我的单例对象?
我在哪里实例化我的NSMutable对象数组?
如何在项目中的任何地方引用此数组?
非常感谢所有代码和示例!
编辑1
这是我到目前为止所拥有的。我无法弄清楚如何正确,一致地访问此香蕉阵列:
#import <Foundation/Foundation.h>
@interface Singleton : NSObject {
NSMutableArray *bananas;
}
@property (nonatomic, retain) NSMutableArray *bananas;
@end
#import \"Singleton.h\"
static Singleton *mySingleton;
@implementation Singleton
@synthesize bananas;
#pragma mark SingletonDescption stuff
+ (Singleton *)mySingleton
{
if(!mySingleton){
mySingleton = [[Singleton alloc]init];
}
return mySingleton;
}
+ (id)allocWithZone:(NSZone *)zone
{
if (!mySingleton) {
mySingleton = [super allocWithZone:zone];
return mySingleton;
} else {
return nil;
}
}
- (id)copyWithZone:(NSZone*) zone
{
return self;
}
- (void)release
{
// NO OP
}
@end
编辑2
这就是我试图使用我的单例对象在表单元格中放置对象数组的方式。什么也没发生,表格单元格空白:(
- (id)init
{
[super initWithStyle:UITableViewStylePlain];
// bananas = [[NSMutableArray alloc] init];
Singleton *mySingleton = [[Singleton alloc]init];
mySingleton.bananas = [[NSMutableArray alloc]init];
UIImage *imageA = [UIImage imageNamed:@\"A.png\"];
UIImage *imageB = [UIImage imageNamed:@\"B.png\"];
UIImage *imageC = [UIImage imageNamed:@\"C.png\"];
Banana *yellowBanana = [[Banana alloc] initWithName:@\"Yellow\" description:@\"Beautiful\" weight:22.0 icon:imageA];
Banana *greenBanana = [[Banana alloc] initWithName:@\"Green\" description:@\"Gorgeous\" weight:12.0 icon:imageB];
Banana *rottenBanana = [[Banana alloc] initWithName:@\"Rotten\" description:@\"Ugly\" weight:8.0 icon:imageC];
[mySingleton.bananas addObject:yellowBanana];
[mySingleton.bananas addObject:greenBanana];
[mySingleton.bananas addObject:rottenBanana];
}
没有找到相关结果
已邀请:
2 个回复
荒劫娇噬
首次使用时,单例已初始化。您可以随时随地调用它:
久纳禾澎