У меня проблема с одноэлементной реализацией. Кажется, что объект, который я хочу держать в моем синглтоне, поврежден, и я не могу понять, почему Любая помощь приветствуется.
Вот код синглтона:
SessionServices.h
#import <Foundation/Foundation.h>
/**
This class provides a simple way of getting information about the connected user
*/
@class UserIHM;
@interface SessionServices : NSObject {
@private
UserIHM *user; //the object to retain
}
@property (nonatomic, retain) UserIHM *user;
sessionServices.m
@implementation SessionServices
@synthesize user;
static SessionServices *INSTANCE = nil;
+ (SessionServices*)sharedInstance
{
if (INSTANCE == nil) {
INSTANCE = [[super allocWithZone:NULL] init];
}
return INSTANCE;
}
....
//singleton impl from apple documentation
...
}
userIHM.h
@interface UserIHM : NSObject {
@private
NSString *tagUID;
NSString *username;
BOOL isAdmin;
}
@property (nonatomic,retain) NSString *tagUID;
@property (nonatomic,retain) NSString *username;
@property (nonatomic) BOOL isAdmin;
тогда в SessionServices.m я звоню:
user = [[IHMObjectFinderServices sharedInstance] getUserByTagUID:userTagUID];
и все поля пользователя заполняются правильной информацией.
taguid = 2ac6912a
имя пользователя = Майк
isAdmin = NO
затем я пытаюсь использовать эту информацию, чтобы установить заголовок моего UITableView
self.navigationItem.title = [NSString stringWithFormat:@"Projects: %@",[[[SessionServices sharedInstance] user] username]];
Если я NSLog и использую отладчик, я вижу, что имя пользователя становится
неверный CFString
Что я делаю не так?