Пожалуйста, помогите мне с этим:
В AppDelegate есть аргумент под названием «пользователь»:
@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
User *user;
}
@property (nonatomic, retain) User *user;
и я запускаю пользовательский экземпляр в первом контроллере:
User *userInfo = [[User alloc] initWithRealName:realName UserId:userId];
и установите для пользователя значение AppDelegate:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.user = userInfo;
Во втором viewController, я могу получить realName использования, нет проблем:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *realName = appDelegate.user.realName;
Но когда я нажимаю на другой viewController, и я хочу получить настоящее имя пользователя, как сейчас,
но есть ошибка: EXC_BAD_ACCESS:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
User *user = appDelegate.user;
NSLog(@"I am in noticeDetailViewController:%@",user.realName);***//ERROR***
И я хочу знать, почему? и как исправить эту ошибку.
Спасибо!
User.h & User.m
@interface User : NSObject
{
NSString *realName;
NSString *userId;
}
@property (nonatomic, retain)NSString *realName;
@property (nonatomic, retain)NSString *userId;
- (id)initWithRealName :(NSString *)realNameArgument UserId :(NSString *)userIdArgument;
@end
@implementation User
@synthesize realName,userId;
- (id)initWithRealName :(NSString *)realNameArgument UserId :(NSString *)userIdArgument
{
self = [super init];
if (self)
{
realName = realNameArgument;
userId = userIdArgument;
}
return self;
}
- (void)dealloc
{
[super dealloc];
[realName release];
[userId release];
}
@end