我正在尝试使用单例类在uitabbarcontroller的viewcontrollers之间传递数据,如下所示:
#import <Foundation/Foundation.h>
@interface AppSingleton : NSObject {
NSMutableString *selectedStr;
}
@property(nonatomic,retain) NSMutableString *selectedStr;
+(AppSingleton*) sharedAppInstance;
@end
这是我的实施文件:
#import "AppSingleton.h"
@implementation AppSingleton
@synthesize selectedStr;
+(AppSingleton*) sharedAppInstance{
static AppSingleton *sharedAppInstance;
@synchronized(self){
if(!sharedAppInstance){
sharedAppInstance = [[AppSingleton alloc] init];
}
}
return sharedAppInstance;
}
-(void)dealloc{
[selectedStr release];
[super dealloc];
}
@end
我尝试在我的一个viewcontrollers中设置selectedStr,如下所示,然后在NSLog中打印,但是我得到一个null:
AppSingleton *sharedAppInstance;//in the header
sharedAppInstance = [AppSingleton sharedAppInstance];//in viewdidload
[sharedAppInstance setSelectedStr:self.someStr];
NSLog(@"selectedStr is: %@", sharedAppInstance.selectedStr);
当我调试它时,sharedAppInstance.selectedStr似乎超出了范围。 我想知道我在哪里弄错了。 谢谢。
答案 0 :(得分:1)
我在viewcontroller中更改了我的变量的设置/获取位置并且它有效..
[sharedAppInstance setSelectedStr:self.someStr];
NSLog(@"selectedStr is: %@", sharedAppInstance.selectedStr);