使用Libtorrent开发ios的BT下载遇到的问题(1)

首先问题不是一直发生,下载几个种子后,就会出现问题概率不一定


使用Libtorrent开发ios的BT下载遇到的问题(1)_第1张图片
屏幕快照 2016-11-18 下午4.07.43.png

控制台输出的内容是


屏幕快照 2016-11-18 下午4.07.53.png

简单判断下大概是跟libtorrent依赖的boost库的方法又关系,缩小范围后,经过定位发现是在代码里面调用下面方法后崩溃的

屏幕快照 2016-11-18 下午4.12.45.png

代码里面th对应的是一个torrent_handle的对象,那么也就是说在获取这个torrent_handle对应的torrent_info后,通过这个torrent_info获取种子一系列信息的时候出错了,于是找到这个种子用迅雷尝试了下弹出

使用Libtorrent开发ios的BT下载遇到的问题(1)_第2张图片
屏幕快照 2016-11-18 下午2.29.30.png

这样问题就很显然了,是因为种子文件有问题,那么该怎么处理,首先想到的是,要先判断这个torrent_info是否可用,看了看还真有相对应的函数

使用Libtorrent开发ios的BT下载遇到的问题(1)_第3张图片
屏幕快照 2016-11-18 下午4.19.23.png

而且返回一个bool值 ,那不是正好.但是很遗憾,还是跟原来一样报错,又试了试其他几个方法,都一样报错.也就是差不多这个torrent_info对象的数据是错误的,那么你调用他的任何方法也都不行
无奈想到了一个最简单暴力的方法,就是输出一下这个错误的torrent_info看看有什么信息,


屏幕快照 2016-11-18 下午4.29.15.png

这里需要注意下:libtorrent.framework是用c++写的,里面的很多的对象不能用oc的格式输出 得用c++的cout 输出才可以
然后运行 结果如下


屏幕快照 2016-11-18 下午4.30.44.png

torrent_info = 0x0
这样就很简单了,只要在最进一步的操作之前判断下if(ti == 0);就可以了 问题解决.

你可能感兴趣的:(使用Libtorrent开发ios的BT下载遇到的问题(1))