Multipeer Connectivity Framework 是iOS 7 推出的浩繁新框架的一种,它拓宽了操作系统中使用的范畴。其目标是使开发者可以创立经过Wi-Fi或蓝牙在近间隔树立衔接的使用。是在近间隔装备间树立互动,交流数据和其他资本的很好的容易Tools。
继续我们的引见,在看到例子之前我们有需要会商一下Multipeer Connectivity Framework的细节部分使让我们对它更熟习。起首,我们必需夸大一下这类框架协作只实用于近间隔的装备,意思是只能在统一个收集装备下实行(Wi-Fi或许蓝牙),也就是说不要希冀在远间隔的情况下任务。在多用户端衔接下,一个装备可以和非常多装备衔接而且和其一切的同时实行互动。一个单一的装备就是一个端口。当两个端口衔接起来后,就成了一个Multipeer Connectivity的会话, 这个会话担任治理一切端口间的互动和数据交流。在多个装备下,可以树立多个会话。
在会商树立衔接之前,(需求衔接的)装备们起首需求发明对方的存在。在使用中运用 Multipeer Connectivity,“发明”是第一个阶段。那末装备是怎么发明相互的呢?我们假定,如今有两个装备想要衔接。那末最少要有一个装备作为阅读器(browser),用来搜索其他装备;第二个装备必需是可发明的,它要声明它在这里,而且它想要与此外装备衔接。换句话说,第二个装备需求宣扬本人。大部分情况,两个装备都要宣扬本人,但最少要有一个能阅读其他装备,从而树立衔接。
在阅读方面,Apple 供给了两种办法。第一种容易一些,是一个框架中间接嵌入的阅读器UI,被挪用的时分就弹出一个浮层,上面列出一切可衔接的装备。第二种为开发者供给了更强的灵敏性,是一种完整用代码完成的方法,因而您可以依据使用需求来定制这个阅读器。本文是对这个框架的入门教程,因而接下来我们只用第一种办法。
一旦发明了其他对等实体,查询播送实体的对等实体就会发送恳求树立衔接的信息。假如第二个对等实体(也就是播送实体)接纳这条音讯,那末就会树立一个会话,至此这两个对等实体就能够交流数据了。
接下来讲说数据,多对等实体衔接框架可以用来发送和接纳三品种型的数据。这三种数据是:
音讯数据(包含文本、图象和可以转换为NSData工具的任何其他数据)
流数据
资本数据
接下来更具体的会商一下音讯数据,传输如许的数据可使用两种形式:牢靠传输形式和不成靠传输形式。框架在运用牢靠形式发送数据的时分,它必定会确保发送的任何数据城市抵达接纳者,并且是依照发送的次序抵达接纳者的。不外,要完成牢靠形式的数据传输就需求更多的工夫。但是,运用不成靠形式发送数据简直不花工夫,发送也真的很快,不外它不克不及确保发送的一切数据都能抵达另外一端,固然,接纳数据的次序也不是依照发送次序的。终究哪种形式是最优选择这一点是完整由每一个使用的请求来断定的,因而开发者要决议运用哪一种形式。
凡是,多实体衔接框架为初级言语开发者供给所需的类和库,因而不需求有任何C或许其他初级言语的编程经历。在这个框架下,你可使用很多内置的功用,而不会为完成或许处理任何与收集相干的问题而迷惑。在这篇编程指南里,我们不会消耗很多工夫对这个框架做一些实际性的引见,因而我们激烈建议你拜访Apple文档,实行一些进修,固然,也能够看看苹果全球开发者大会(WWDC)2013的708号视频会话。特殊要留意的是:要对多实体衔接框架实行测试的话,你手头起码要有两台装备,或许一台装备和一个iPhone模仿器。
为了很轻易地在理论中运用多实体衔接功用和搞明白多实体衔接框架是如何实行装备通讯的,请向下浏览!
在这篇编程指南里,我们将创立一个使用样例,用以阐明多实体衔接框架最主要的部分。后面我曾经提到运用这个框架可以交流三品种型的数据:音讯数据、流数据和资本数据。在我们行将完成的示例使用里,我们将看到怎么经过装备间发送NSData工具来发送音讯数据,和怎么同享资本数据的,比方同享文件。不外,在我们创立示例使用之前,我们需求疾速阅读一下示例使用终究做了哪些工作。
我们将创立一个带有标签的使用, 总共带有三个标签。让我们从最初一个称号为我的衔接的标签提及,我们将创立一个视图把持器,用它来治理对等实体(装备)名,正在播送的实体和这台装备上曾经树立的一切衔接(实践上是会话)。特别要留意的是,我们运用了文本输出,如许可认为这台装备自定义一个称号,以便在其他对等实体上显示这台装备。再另有一个按钮,一旦轻击这个按钮就会显示默许的阅读器界面,同时把持开关用来翻开或许封闭这台装备的播送功用。接下来是表视图,在这里列出了这台装备正在实行的一切衔接。表视图下有一个或许多个按钮,经过这些按钮可以断开这个装备上的会话。下图显示了简要的视图把持器:
接下来引见的另外一个视图把持器是位于第一个标签下。这个视图把持器的名字为谈天窗口,用它来在装备间经过多实体衔接框架发送文本音讯。这个视图把持器由一个文本输出框、一个文本视图和两个按钮构成, 文本输出框用来誊写音讯,文本视图用来显示全部谈天内容,而两个按钮中一个用来发送音讯,一个用来撤消音讯发送 。下面是如许一个视图把持器的屏幕截图:
最初引见的这个视图把持器是位于第二个标签下的,名字为文件同享。这儿有一个表视图,它包括一些(样例)文件列表。中选中一行时,就会有显示如许的选项:举措选项和一切对等实体的名字。选择好对等实体后,就会间接把所选的文件发送给该对等实体。为了让这个视图更吸援用户而且更具有交互性,当装备接纳一个文件的时分,在这个表视图的最初一行显示文件名、发送实体和正在接纳文件的进度。当这个装备发送一个文件的时分 ,这个文件名的右边将以发送百分比来显示发送的进度。下图是第二个标签下的视图把持器肇端形态的截图:
我曾经引见了示例使用的一切视图把持器,特殊留意的是我从第三个标签Start引见 ,由于在这篇编程指南里,处于第三个标签下的视图把持器对我们来讲最主要。经过对这个视图的了解,我们就可以清楚怎么处置和治理发明进程和会话树立进程。
在我们完毕简要地引见示例使用之前,另有一些非常主要的工作必需说起一下。为了在该使用范畴内运用多实体衔接框架和防止反复编写异样的功用三次(每一个视图把持器各一次),我们创立一个用于治理一切与这个框架相干的工具和Task的类。接着我们就能够在使用的委派类(AppDelegate)里初始化这个类对应的工具。别的,经过使用委派,我们就能够跨使用拜访该工具了。究竟与仅构建一次并把其当Tools屡次运用比拟,对某个工具开发屡次是一个十分蹩脚的编程理论。
在我们阅读完这个使用以后,我们就要实行开发了,如今是时分实行这个使用的开发了 。假如你计划逐渐构建这个使用,请你下载位于这篇编程指南末尾的两个样例文件。别的,为了便当起见,你可以下载全部示例使用,它包括了一切的代码。
启动 Xcode 经过点击欢送屏幕左边响应的按钮创立一个新工程:
在导游的第一步,在 iOS 大类下的 Application 种别当选择 Tabbed Application 选项。
点击 Next 按钮转入导游的下一步。在 Product Name 输出框中我定名这个使用的称号为 MCDemo,但你也能够定名为你爱好的其它称号。 另外,确保在 Devices 的下拉菜单当选择 iPhone。其它坚持原样,点击 Next 按钮行进。
最初,为你的工程选择一个存储地位,点击 Create 按钮完毕导游。如今工程曾经预备好了。
就像后面提到的,这个使用里总共有三个tab,但默许创立的只要两个。所以,我们的第一个Task是添加一个新tab,然后把这个新tab衔接上一个新类。除此以外,我们还要为一切tab设置题目和icon。
起首在项目里添加一个新的 UIViewController 类,用于衔接我们一会儿将要添加的新tab。在项目导航(右边栏)中, 按着Ctrl点击或许右击 MCDemo 这个 group ,然后从弹出菜单当选择 New File…选项,以下图所示:
在右边的 iOS 一项下,要断定选的是 Cocoa Touch 分类。然后,选择 Objective-C class 图标,点击 Next 按钮继续。
在 Class 输出框,填写 ConnectionsViewController 。而且,要确保 Subclass of 这一栏选择的是 UIViewController 。不要勾选下面两个选项。点击 Next 进入下一步。
最初一步,点击 Create 按钮,就半途而废啦。如今,在右边栏的项目导航中应当可以看到 ConnectionsViewController.h 和 ConnectionsViewController.m 两个文件了。
如今点击 Main.storyboard ,让它翻开 Interface Builder 。起首,添加一个新的 view controller ,,办法是把它从 Object Library 中拖出来放在 canvas 上,就放在 second view controller 的下面。
然后,不断按着键盘上的 Ctrl 键,点击 Tab Bar Controller ,然后不断按着鼠标左键,拖到我们刚添加的新 view controller 上。如今铺开 Ctrl 键和鼠标左键了。会弹出一个玄色的窗口,此中的 Relationship Segue 部分你必需点击 view controllers 选项,如许这个新的 view controller 就会被加为 tab bar controller 的一个新 tab。
tab bar controller 今朝包括了3个 tab,而且衔接上了我们新创立的 view。我们如今需求将新 view controller 的类设置为之前添加的 ConnectionsViewController 。为此,起首点击新 view controller,然后在 Utilities Pane (右边栏)中,翻开 Identity Inspector (第3栏),以后在 Custom Class 部分将 ConnectionsViewController 填进 Class 对应的输出框。
最初,我们只需为 tab 们设置准确的题目。要设置一个 tab 的题目,需求起首在场景中(而不是 tab bar controller上)选中需求修正的 tab。然后,再回到 Utilities pane(右边栏),翻开 Attributes Inspector(第4栏),然后在 Bar Title 部分将题目填入 Title 对应的输出框。
设置题目以下:
First View Controller: Chat Box
Second View Controller: File Sharing
Connections View Controller: My Connections
留意,教程中一切在 Interface Builder 实行的可视化设置装备摆设都是针对 4 寸屏幕装备的,如 iPhone 5 或 5S。假如你想要让这个使用在较老的3.5寸装备上运转,只需变通一下,使用 Xcode 的引荐束缚,然后就能够轻松运转了。
本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务