我已将 NSMutableArray 声明为单例;当我尝试检查数组计数时,应用程序崩溃了!这是代码:
// clear array that holds selected servcies
SingletonArrayOfSelectedRows *arrayOfSelectedRows = [SingletonArrayOfSelectedRows sharedArrayOfSelectedRows];
if([arrayOfSelectedRows count] > 0)
[arrayOfSelectedRows removeAllObjects];
此代码与我在 SO 和 Google 上找到的代码相同。使用 XCode5,我已检查以确保已分配单例(并且已分配),并且单例有一个有效的计数 (0)。
更新 这是 singleton.h 文件的代码:
@interface SingletonArrayOfSelectedRows : NSMutableArray {
}
@property (nonatomic, retain) NSMutableArray *arrayOfSelectedRows;
+ (id)sharedArrayOfSelectedRows;
@end
这是 singleton.m 文件的代码:
@implementation SingletonArrayOfSelectedRows {
}
@synthesize arrayOfSelectedRows; // rename
// sharedSelectedCellIndexes
+ (id)sharedArrayOfSelectedRows {
static dispatch_once_t dispatchOncePredicate = 0;
__strong static id _sharedObject = nil;
dispatch_once(&dispatchOncePredicate, ^{
_sharedObject = [[self alloc] init];
});
return _sharedObject;
}
-(id) init {
self = [super init];
if (self) {
arrayOfSelectedRows = [[NSMutableArray alloc] init];
}
return self;
}
@end