私は1つのモデルを持っています。
初期化後 3 秒ごとに 1 つの属性を更新したいのですが、後で別のビュー コントローラーで属性を変更する必要があります。
コードは次のとおりです。
モデル
@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";
}
エラーはなくなりました。誰か教えてください。