我已經設置了一個Singleton(有很多StackOverflow的幫助) 但是當我嘗試修改/訪問數組「listOfHeadings」時,似乎沒有任何變化。 我從編譯器或運行時不會收到錯誤或警告。無法修改Singleton中的數組
我在我的GlobalData.h得到這個:
#import <Foundation/Foundation.h>
@interface GlobalData : NSObject {
NSMutableArray *listOfHeadings;
}
@property(nonatomic,retain)NSMutableArray *listOfHeadings;
+(GlobalData*)getInstance;
@end
這是我GlobalData.m:
#import "GlobalData.h"
@implementation GlobalData
@synthesize listOfHeadings;
static GlobalData *instance;
+(GlobalData *)getInstance{
@synchronized(self){
if(!instance){
instance= [[GlobalData alloc] init];
instance.listOfHeadings=[[NSMutableArray alloc]init]; //EDIT: This line added to resolve problem
}
}
return instance;
}
@end
我訪問辛格爾頓我AppDelegate.m:
#import "GlobalData.h"
...inside didFinishLaunchingWithOptions...
GlobalData *globDat=[GlobalData getInstance];
[globDat.listOfHeadings addObject:@"Message Settings"];
NSLog(@"appdel m array test %i",[globDat.listOfHeadings count]); // prints 0!
很清楚,我做錯了什麼 - 可以幫助指出我的錯誤嗎? 謝謝。
是不是在GlobalData.h文件中處理? – wayneh
不在您在問題中顯示的代碼中。你所做的只是聲明你有一個可變數組,你需要在某個地方實際分配/初始化它。 – jrturton
明白了 - 我在其他線索中找到示例代碼...謝謝! http://stackoverflow.com/questions/6324732/using-a-singleton-to-create-an-array-accessible-by-multiple-views – wayneh