今天在profile工程的时候,发现ASIInputStream对象泄露,以前xcode4的时候貌似没有泄露的,于是上网搜了一下,发现原因如下:
泄漏是因为ASIInputStream被强制转换为一个CFReadStreamRef但ASIInputStream不是NSInputStream的子类,它只是包装它,估计SDK做了一些更改导致内存泄露。我们可以更改ASIInputSteam为NSInputStream类可已解决内存泄露,但是我们想要保留ASI里面关于带宽限制的代码。
于是从网上找到heroims fork的一个ASI的分支有解决方案,对ASIInputStream类做了一些修改:
https://github.com/heroims/asi-http-request/commit/5da4aceb03e618420d1c3ed7014f856a5d8bdf24