ios - 创建一个单例 NSMutableArray

标签 ios

我正在尝试做一个 Singleton NSMutableArray,但是 count 函数总是显示 0 个元素。我猜它没有很好地接收该物体。

这是我创建的代码。

//VariableStore.h
@interface VariableStore : NSObject
{
    NSMutableArray *pruebaGlobal;
}
@property (nonatomic, retain) NSMutableArray *pruebaGlobal;
+ (VariableStore *)sharedInstance;
- (NSMutableArray*)pruebaGlobal;
@end

//VariableStore.m
@implementation VariableStore
@synthesize pruebaGlobal;
+ (VariableStore *)sharedInstance
{
    // the instance of this class is stored here
    static VariableStore *myInstance = nil;

    // check to see if an instance already exists
    if (nil == myInstance) {
        myInstance  = [[[self class] alloc] init];
        myInstance.pruebaGlobal = [[NSMutableArray alloc] initWithCapacity:100];
    }
    // return the instance of this class
    return myInstance;
}

- (NSMutableArray*)pruebaGlobal{
    return pruebaGlobal;
}

@end

//ViewController.m

NSMutableArray *p = [[VariableStore sharedInstance] pruebaGlobal];
p = [NSArray arrayWithObjects:
                   [NSMutableArray arrayWithObjects:@"Sí", @"No", nil, nil, nil],
                   [NSMutableArray arrayWithObjects:@"Súbita", @"Fluctuante", @"Progresiva", nil, nil],
nil];

NSLog(@"%d", [[[VariableStore sharedInstance] pruebaGlobal] count]);

最佳答案

抛开数组构造中对 nil 的滥用,您的代码根本不会向您要计数的数组添加任何内容。试试这个:

NSMutableArray *p = [[VariableStore sharedInstance] pruebaGlobal];
[p addObject:[NSMutableArray arrayWithObjects:@"Sí", @"No", [NSNull null], [NSNull null], nil]];
[p addObject:[NSMutableArray arrayWithObjects:@"Súbita", @"Fluctuante", @"Progresiva", [NSNull null], nil]];

对于您合成的属性,您将其指定为保留属性,然后为其显式定义 getter,而不是 setter。如果将属性声明为保留,则可以让编译器同时处理 getter 和 setter,或者自己编写两者,但不仅仅是其中之一。我的建议是,只需从头文件和实现文件中删除显式 getter:- (NSMutableArray*)pruebaGlobal 即可。

关于ios - 创建一个单例 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676914/

相关文章:

ios - 如何在 xcode 5 和 ios 7 中设置默认语言环境?

ios - 错误 itms-90035

ios - UICollectionView reloadSection 不会从 View 层次结构中删除旧 View

ios - 我可以在 "for in"控制结构中使用 Swift 向下转换吗?

ios - iOS 给 UIView 填充多种颜色

ios - 在 swift 中解析 firebase 时为零

objective-c - 在Objective-C中,如何打印出N个空格? (使用 stringWithCharacters)

ios - 为什么当我尝试格式化日期时得到默认日期值?

ios - UIWebView网页缓存,供离线查看

ios - iOS中 block (Objective-C)和闭包(Swift)之间的区别