首先问题不是一直发生,下载几个种子后,就会出现问题概率不一定
屏幕快照 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获取种子一系列信息的时候出错了,于是找到这个种子用迅雷尝试了下弹出
屏幕快照 2016-11-18 下午2.29.30.png这样问题就很显然了,是因为种子文件有问题,那么该怎么处理,首先想到的是,要先判断这个torrent_info是否可用,看了看还真有相对应的函数
屏幕快照 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);就可以了 问题解决.
网友评论