Попытка создать объект NSO с именем «Person», в котором будут храниться данные для входа в мое приложение (ничего особенного). Приложение состоит из контроллера навигации с несколькими представлениями таблиц, но у меня возникают проблемы при совместном использовании объекта Person.
Попытка создать статический объект, подобный этому:
+ (Person *)sharedInstance {
static Person *sharedInstance;
@synchronized(self) {
if(!sharedInstance)
sharedInstance = [[Person alloc] init];
return sharedInstance;
}
return nil;
}
А вот и заголовок
// Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject {
NSString *fullName;
NSString *firstName;
NSString *lastName;
NSString *mobileNumber;
NSString *userPassword;
}
@property(nonatomic, retain) NSString *fullName;
@property(nonatomic, retain) NSString *firstName;
@property(nonatomic, retain) NSString *lastName;
@property(nonatomic, retain) NSString *mobileNumber;
@property(nonatomic, retain) NSString *userPassword;
+ (Person *)sharedInstance;
-(BOOL) setName:(NSString*) fname;
-(BOOL) setMob:(NSString*) mnum;
-(BOOL) setPass:(NSString*) pwd;
@end
Этот установщик и получатель объектов необходимы в разных частях приложения. Я пытался получить к ним доступ, как это
Person * ThePerson = [[Person alloc] init];
ThePerson = nil;
NSString * PersonsName;
PersonsName = [[Person sharedInstance] firstName];
На экране входа в систему все работает хорошо, но при следующем использовании оно исчезает. обычно EXC_BAD_ACCESS (eek!).
Очевидно, что я делаю что-то очень неправильно здесь. Существует ли более простой способ обмена объектами между различными контроллерами представления номеров (как кодированными, так и xib)?