尝试创建一个名为“Person”的 NSObject,它将保存我的应用程序的登录详细信息(没什么可看的)。该应用程序由具有多个表视图的导航控制器组成,但我在共享 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(哎呀!)。
显然我在这里做错了什么。有没有更简单的方法在不同的数字视图控制器(编码和 xib)之间共享对象?