我正在创建一个使用iOS串行电缆适配器的应用程序。该应用程序的基本设计是具有详细视图控制器的拆分视图控制器,我可以从中启动通过附件发送信息的会话(在单独的视图中)。我将应用程序“工作”,因为我设置了从会话视图控制器控制附件接口(在SDK中提供)的委托,并且它在第一次运行时工作。唯一的问题是,如果我尝试第二次运行会话(通过再次从详细视图控制器启动或在拆分视图中的项目之间切换),则由于预先存在的连接(即先前建立的连接)而失败。这是下面的控制台日志:
ERROR - opening session failed
ERROR - /SourceCache/ExternalAccessory/ExternalAccessory-242/EASession.m:-[EASession dealloc] - 139 unable to close session for _accessory=0x14d59250 and sessionID=65536
Cable Not Connected
如果它也有帮助,这里是会话视图控制器的.h和.m文件中的一些精简代码:
·H
@interface SessionViewController : UIViewController <RscMgrDelegate> {
RscMgr *rscMgr;
CableConnectState cableState;
}
@property (strong, nonatomic) IBOutlet UIBarButtonItem *cableStatus;
- (void) sendStringToSerial: (NSTimer *) timer;
@end
的.m
@implementation SessionViewController
@synthesize cableStatus;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
// Serial Setup
rscMgr = [[RscMgr alloc] init];
[rscMgr setDelegate:self];
//checks cableConnectState and adjusts the outlet cableStatus accordingly
}
- (void) sendStringToSerial: (NSTimer *) timer {
[rscMgr writeString:someString];
}
@end
所以问题:结构是否是我最好的方法,如果是,我该如何解决会话问题?如果没有,有什么建议从这里去?谢谢!