Ios NSMutableArray共享实例始终只返回最后一个对象
我对NSMutablearray addobject感到困惑,我尝试使共享实例NSMutablearray如下: 1.共享实例Ios NSMutableArray共享实例始终只返回最后一个对象,ios,objective-c,for-loop,nsmutablearray,nsobject,Ios,Objective C,For Loop,Nsmutablearray,Nsobject,我对NSMutablearray addobject感到困惑,我尝试使共享实例NSMutablearray如下: 1.共享实例 + (netra*)someInstance { if (sharedObject == nil) { sharedObject = [[super allocWithZone:NULL] init]; } return sharedObject; } 1.1插入方法 +(void) setStock:(NSInteger *)
+ (netra*)someInstance
{
if (sharedObject == nil) {
sharedObject = [[super allocWithZone:NULL] init];
}
return sharedObject;
}
1.1插入方法
+(void) setStock:(NSInteger *)stock{
// Ensure we are using the shared instance
netra *shared = [netra sharedInstance];
[shared.stockInits addObject:stock];
}
-(void) some{
for(int x=0;x<=1000;x++){
[netra setStock:i];
}
}
1.3调用nsmutablearray的方法
+(NSMutableArray *) getStock{
// Ensure we are using the shared instance
netra *shared = [netra sharedInstance];
return shared.stockInits ;
}
2.插入方法
+(void) setStock:(NSInteger *)stock{
// Ensure we are using the shared instance
netra *shared = [netra sharedInstance];
[shared.stockInits addObject:stock];
}
-(void) some{
for(int x=0;x<=1000;x++){
[netra setStock:i];
}
}
-(无效)一些{
对于(intx=0;x首先,我将创建一个getInstance方法,如下所示:
@implementation SinglentonObject{
NSMutableArray *array;
}
+ (id)getInstance {
static SinglentonObject *instance = nil;
@synchronized(self) {
if (instance == nil) {
instance = [[SinglentonObject alloc] init];
}
return instance;
}
}
-(void) setStock:(NSNumber *)stock{
// Ensure we are using the shared instance
if(!array){
array = [@[] mutableCopy];
}
[array addObject:stock];
}
- (NSMutableArray *) getStockArray
{
return stockArray;
}
用某种方法,你必须用x来改变i:
-(void) write
{
for(int x=0;x<=1000;x++){
[[SinglentonObject getInstance] setStock:@x];
}
}
请记住将getInstance的每个方法修改为类方法。我建议您阅读一些Singlenton模式的文章,如。hmmm回答得很好,但为什么我不能从其他类迭代nsmutablearray..如果我计算它,它返回正确的长度..那么它已经插入到nsmutablearray了吗?但为什么只显示最后一条记录ing?是nsmutable数组在我调用setStock时重置了内容?还是其他原因?我不太确定是哪段代码引起了这种奇怪的行为,因为有一些候选代码。我将编辑答案以改进它。嗯,谢谢!但它仍然给我带来了很大的神秘;)如果数据不是nsnumber呢?如果数据是nsdictionary呢?我想将其绘制到tableview中?