2011-01-22 67 views
0

我使用Singleton類共享龐大的數據我從web服務來處理,這是我在我以前的應用做了也越來越。但隨着新的ios 4.2不起作用,我不明白其原因,因爲它與新的API /框架沒有任何關係。Singleton類上的iOS 4.0及更早版本,但不工作的4.1和4.2 SDK

這是我單身的代碼:

@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]; 

這裏是怎麼了在第二個視圖viewDidLoad方法中訪問此設置值:

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

我嘗試了所有可能的保留釋放,但沒有用的......和高雅的錯誤也varies..some時間是「EXC_BAD_ACCESS」和一些其他時間

回答

2

調用initWithObjects:,你應該終止名單值爲nil。除了這是您在準備示例時所犯的錯字。

此外,有可能是您的setHname:方法的問題既不固定,也不復制值被賦予。

+0

好吧,我糾正它仍然同樣的「EXC_BAD_ACCESS」 – AKG 2011-01-22 23:56:58

相關問題