我有一个模型。
我想在初始化后每 3 秒更新一个属性,稍后我需要在另一个视图控制器中更改该属性。
代码是:
模型
@interface Ap : NSObject
@property (nonatomic, retain) NSString *address;
@property (nonatomic, retain) NSString *sessionId;
+ (id)sharedInstance;
@end
@implementation Ap
@synthesize sessionId, address;
-(id) init {
if (self = [super init]) {
self.address = nil;
self.sessionId = nil;
[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(heartbeat) userInfo:nil repeats:YES];
}
return self;
}
-(void) updateSession{
sessionId = @"some string";
}
- (void) update{
self.sessionId = @"some value from network";
}
+ (Ap *)sharedInstance {
if (!sharedInstance) {
sharedInstance = [[super allocWithZone:NULL] init];
}
return sharedInstance;
}
@end
控制器
- (void) viewDidLoad {
[super viewDidLoad];
[[Ap sharedInstance] updateSession];
}
错误是:(lldb) bad access
模型更新时
我将 updateSession 方法更改为
-(void) updateSession{
self.sessionId = @"some string";
}
错误消失了,谁能告诉我为什么?