2011-01-22 7 views
0

シングルトンクラスを使用して、以前のアプリケーションでもやっていたWebサービスから大量のデータを共有しています。しかし、新しいios 4.2が動作しないので、新しいAPI /フレームワークとは関係がないため、動作しない理由を理解できません。シングルトンクラスは4.0とiOS 4.0以前のバージョンで動作しますが、4.1と4.2では動作しません。

@interface SingleTon : NSObject { 

    NSMutableArray *hname; 

} 
+ (SingleTon *) sharedInstanceHname; 

//hname 
-(NSMutableArray *) getHname:(NSMutableArray *)x; 
-(void) setHname:(NSMutableArray *)x; 

.Mクラス:ここ

は私のシングルトンのコードである

@implementationシングルトン 静的シングルトン* _sharedInstanceHname。

- (id) init 
{ 
if (self = [super init]) 
{ 
    // custom initialization 
    //memset(board, 0, sizeof(board)); 
    hname = [[NSMutableArray alloc] initWithObjects:@"NO RESULT",nil]; 

    index =1; 
} 
return self; 

}

+ (SingleTon *) sharedInstanceHname 
    { 
if (!_sharedInstanceHname) 
{ 
    _sharedInstanceHname = [[SingleTon alloc] init]; 
} 

return _sharedInstanceHname; 

}

- (NSMutableArray *) getHname:(NSMutableArray *)x 
{ 
return hname; 
    } 

- (void) setHname:(NSMutableArray *)x 
{ 
hname = x; 
} 
私は私の最初のビューに格納する値にシングルトンを使用していますどのようにここで

SingleTon *sname = [SingleTon sharedInstanceHname]; 
[sname setHname:hname]; 

そして、ここでは私がどのようです第2のビューviewDidLoadメソッドでこの設定値にアクセスする:

SingleTon *places = [SingleTon sharedInstanceHname]; 
NSLog(@"%@", [places getHname:getname]); 

は、私はすべての可能なリリースを保持するが、役に立たない試みた...といや誤差もそれは、あなたがリストを終了しなければならない「EXC_BAD_ACCESS」と

答えて

2

initWithObjects:を呼び出すと、他のいくつかの時間varies..some時間です値はnilです。これを除いて、あなたは例を準備している間違いをしています。

また、setHname:メソッドで、割り当てられている値を保持したりコピーしたりする際に問題が発生する可能性があります。

+0

さて、これを修正しました。「EXC_BAD_ACCESS」 – AKG

+0

サンプルコードを今のように更新できますか?さらに調査するためには、アプリがクラッシュしたときに(実際には)スタックトレースを調べて、何が起こっているのかを理解しなければならない変数の値を調べることができます。また、NSZombieEnabled環境変数をオンにして、おそらくもっと貴重なエラー情報を入手してみてください(例えば、[ここ](http://www.tomwhitson.co.uk/blog/2009/04/debugging-with- nszombiesenabled /))。 –

+0

あなたを助けました。ありがとうございます。 – AKG