Я пытаюсь передать данные между контроллерами представления uitabbarcontroller с помощью одноэлементного класса, как показано ниже:
#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
Я пытаюсь установить selectedStr в одном из моих контроллеров представления, как показано ниже, и распечатать его в NSLog, однако получаю ноль:
AppSingleton *sharedAppInstance;//in the header
sharedAppInstance = [AppSingleton sharedAppInstance];//in viewdidload
[sharedAppInstance setSelectedStr:self.someStr];
NSLog(@"selectedStr is: %@", sharedAppInstance.selectedStr);
Когда я отлаживаю это, sharedAppInstance.selectedStr кажется вне области.
Я хотел бы знать, где я делаю ошибку.
Спасибо.