加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

External Accessory Framework初步了解(二)

(2014-11-03 17:53:21)
标签:

externalaccessory.fr

ios

oc

xcode

上一篇文章学习了EAccessory和EAccessoryManager类。接下来是学习EAsession类。

3EASession

    这个类是用来创建一个程序和连接设备的一个交流渠道。当创建一个会话时,你必须指定你想和设备交流的协议。初始化这个类的实例之后,你会通过这个协议,用提供的输出和输入流去和设备交换数据。

创建一个会话对象之后,你应该马上配置流对象。流发送事件到他们关联的delegate去通知它流状态的改变。举个例子,当数据正等着被读或者有足够的空间被写,流就通知delegate

当通过提供的流,发送和接收数据,确保数据是按照协议格式化的就是你的责任。EASession类没有配件协议的知识,不能够尝试去格式化数据。

1

-(instancetype)initWithAccessory:(EAAccessory*)accessory
  forProtocol:(NSString*)protocolString

这个方法会返回一个会话的实例。

accessory:是你的交流的配件对象,可以从EAAccessoryManager对象得到。

protocolString:和配件交流使用的协议,所有的交流都必须通过这个协议。


(2)@property(nonatomic, readonly) EAAccessory *accessory ,指的是这个会话的配件。

3@property(nonatomic, readonly) NSString *protocolString ,和配件交流使用的协议。

4@property(nonatomic, readonly) NSInputStream *inputStream

5@property(nonatomic, readonly) NSOutputStream *outputStream

4)和(5)是通过session对象自动提供,但你必须配置它,如果你想要接收任何关联的流事件。你必须实现delegate一个方法- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent

并且必须安排流是一个循环的执行,在程序的线程中异步接收(发送)数据。

 随后更新会附上自己的demo,先介绍一个官网的demo学习:

https://developer.apple.com/library/ios/samplecode/EADemo/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010079


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有